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

ssize_t PrintChannelMoments(FILE *file,PixelChannel channel,char *name,double scale,
                           ChannelMoments *channel_moments)

{
  undefined1 uVar1;
  longlong lVar2;
  ChannelMoments *pCVar3;
  undefined *puVar4;
  ClassType *pCVar5;
  undefined4 *puVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  undefined4 *puVar14;
  StatisticType type;
  char **ppcVar15;
  ssize_t sVar16;
  uint uVar17;
  uint uVar18;
  int *piVar19;
  ImageType IVar20;
  undefined8 *puVar21;
  int iVar22;
  int iVar23;
  PixelInfo *pPVar24;
  PixelInfo *pPVar25;
  int iVar26;
  PixelChannelMap *pPVar27;
  ClassType *pCVar28;
  Image *image;
  undefined4 uVar29;
  float *pfVar30;
  PixelChannelMap *pPVar31;
  uint uVar32;
  char *pcVar33;
  ClassType CVar34;
  ClassType CVar35;
  undefined4 uVar36;
  size_t sVar37;
  ChannelMoments *channel_moments_00;
  ClassType CVar38;
  int *piVar39;
  size_t sVar40;
  PixelTrait PVar41;
  size_t sVar42;
  PixelChannel PVar43;
  double *pdVar44;
  double *pdVar45;
  FILE *file_00;
  double *pdVar46;
  double *pdVar47;
  undefined1 *puVar48;
  FILE *pFVar49;
  ColorspaceType CVar50;
  TimerInfo *pTVar51;
  int iVar52;
  PixelInfo *pPVar53;
  char *pcVar54;
  int iVar55;
  undefined *puVar56;
  undefined8 *puVar57;
  int iVar58;
  code *pcVar59;
  double dVar60;
  undefined8 uVar61;
  double dVar62;
  undefined8 uVar63;
  double dVar64;
  double dVar65;
  double dVar66;
  ulonglong uVar67;
  double in_stack_00000010;
  int in_stack_00000018;
  undefined1 *puStack_4198;
  ChannelFeatures *pCStack_4190;
  int iStack_418c;
  int iStack_4180;
  undefined4 uStack_416c;
  ClassType aCStack_4168 [2];
  ClassType aCStack_4160 [2];
  undefined8 uStack_4158;
  size_t sStack_4150;
  double dStack_4140;
  double dStack_4138;
  double dStack_4130;
  double dStack_4128;
  double dStack_4120;
  double dStack_4118;
  undefined1 auStack_410c [4095];
  undefined1 auStack_310d [4097];
  undefined1 auStack_210c [4096];
  char acStack_110c [4096];
  int iStack_10c;
  double *pdStack_108;
  int iStack_104;
  double *pdStack_100;
  FILE *pFStack_fc;
  FILE *pFStack_f8;
  undefined4 uStack_f4;
  undefined *puStack_f0;
  int iStack_ec;
  undefined4 uStack_e8;
  code *pcStack_e4;
  double dStack_e0;
  double dStack_d0;
  double local_b0;
  double local_a8;
  double local_a0;
  double local_98;
  double powers [8];
  
  puVar4 = PTR___stack_chk_guard_003a9230;
  image = *(Image **)PTR___stack_chk_guard_003a9230;
  puVar14 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);
  pdVar44 = powers;
  do {
    puVar6 = puVar14 + 4;
    *(undefined4 *)pdVar44 = *puVar14;
    uVar36 = puVar14[2];
    uVar29 = puVar14[3];
    *(undefined4 *)((int)pdVar44 + 4) = puVar14[1];
    *(undefined4 *)(pdVar44 + 1) = uVar36;
    *(undefined4 *)((int)pdVar44 + 0xc) = uVar29;
    puVar14 = puVar6;
    pdVar44 = pdVar44 + 2;
  } while (puVar6 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));
  pdVar44 = (double *)(in_stack_00000018 + channel * 0x80);
  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ef0);
  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar65 = pdVar44[9];
  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar44[10];
  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);
  local_b0 = dVar65;
  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29);
  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar65 = pdVar44[0xb];
  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar44[0xc];
  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);
  local_b0 = dVar65;
  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29);
  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = pdVar44[0xd];
  iVar10 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29);
  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = pdVar44[0xe];
  iVar11 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29);
  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar65 = in_stack_00000010 * pdVar44[0xf];
  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar44[0xf];
  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);
  local_b0 = dVar65;
  iVar12 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29);
  iVar12 = iVar7 + iVar8 + iVar9 + iVar10 + iVar11 + iVar12;
  dVar65 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
  pFVar49 = (FILE *)(PTR_s_t_to_left_003a88e4 + -0x6e30);
  iVar7 = 0;
  pdVar46 = powers;
  do {
    dVar62 = in_stack_00000010;
    pdVar47 = pdVar46 + 1;
    pdVar45 = pdVar44 + 1;
    uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();
    dVar66 = *pdVar44;
    in_stack_00000010 = dVar62;
    dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46);
    dVar66 = dVar66 / dVar60;
    uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();
    local_98 = *pdVar44;
    local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_);
    local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_);
    iVar8 = iVar7 + 1;
    dVar60 = (double)iVar7 + dVar65;
    file_00 = pFVar49;
    local_a8 = dVar66;
    iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file);
    iVar12 = iVar12 + iVar7;
    pdVar44 = pdVar45;
    iVar7 = iVar8;
    pdVar46 = pdVar47;
  } while (iVar8 != 8);
  if (image == *(Image **)puVar4) {
    return iVar12;
  }
  pcVar59 = IdentifyImage;
  puVar56 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  uVar36 = SUB84(dVar60,0);
  piVar13 = *(int **)(puVar56 + 0x2b971c);
  puStack_f0 = puVar4;
  uStack_f4 = 8;
  iStack_10c = *piVar13;
  pdStack_108 = pdVar45;
  iStack_104 = iVar8;
  pdStack_100 = pdVar47;
  pFStack_fc = file;
  pFStack_f8 = pFVar49;
  iStack_ec = iVar12;
  uStack_e8 = uVar29;
  pcStack_e4 = pcVar59;
  dStack_e0 = dVar66;
  dStack_d0 = dVar65;
  if (image == (Image *)0x0) goto LAB_000f38b4;
  if (image->signature != 0xabacadab) {
    uVar29 = 0x213;
    pcVar59 = *(code **)(puVar56 + 0x2b9af4);
    iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c;
    goto LAB_000f38e8;
  }
  if (image->debug == MagickFalse) {
    puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);
    if (file_00 == (FILE *)0x0) {
LAB_000efed0:
      file_00 = (FILE *)*puVar14;
    }
  }
  else {
    (**(code **)(puVar56 + 0x2b96cc))
              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,
               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);
    if (file_00 == (FILE *)0x0) {
      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);
      goto LAB_000efed0;
    }
  }
  CVar50 = image->colorspace;
  iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8);
  if (iVar7 == 0) {
    pTVar51 = &image->timer;
    auStack_310d[1] = 0;
    pcVar33 = image->filename;
    dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51);
    uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51);
    (**(code **)(puVar56 + 0x2b9b54))(pTVar51);
    pFVar49 = file_00;
    if ((int)((ulonglong)dVar60 >> 0x20) == 0) {
      pcVar59 = *(code **)(puVar56 + 0x2b9198);
      if (image->magick_filename[0] != '\0') {
        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);
        if (iVar7 != 0) {
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);
        }
        pcVar59 = *(code **)(puVar56 + 0x2b9198);
      }
      iVar7 = (*pcVar59)(image);
      sVar37 = image->scene;
      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&
         (sVar37 == 0)) {
        iVar7 = *(int *)(puVar56 + 0x2b8e38);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);
      }
      else {
        iVar7 = *(int *)(puVar56 + 0x2b8e38);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);
      }
      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);
      sVar42 = image->magick_columns;
      sVar37 = image->magick_rows;
      sVar40 = image->columns;
      if ((sVar42 == 0) && (sVar37 == 0)) {
LAB_000f0044:
        sVar37 = image->rows;
      }
      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {
        dVar60 = (double)(int)sVar42;
        if ((int)sVar42 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        dVar62 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),dVar62);
        sVar40 = image->columns;
        goto LAB_000f0044;
      }
      dVar60 = (double)(int)sVar40;
      if ((int)sVar40 < 0) {
        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
      }
      dVar62 = (double)(int)sVar37;
      if ((int)sVar37 < 0) {
        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar56 + 0x2b9a30))
                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),
                 SUB84(dVar60,0),dVar62);
      sVar40 = (image->page).width;
      sVar37 = (image->page).height;
      if (sVar40 == 0) {
        iVar8 = (image->page).x;
        iVar9 = (image->page).y;
        if ((sVar37 != 0) || (iVar8 != 0)) {
          dVar60 = 0.0;
          goto LAB_000f00d4;
        }
        if (iVar9 != 0) {
          dVar60 = 0.0;
          goto LAB_000f00d4;
        }
      }
      else {
        iVar8 = (image->page).x;
        iVar9 = (image->page).y;
        dVar60 = (double)(int)sVar40;
        if ((int)sVar40 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
LAB_000f00d4:
        dVar62 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);
      }
      dVar60 = (double)(int)image->depth;
      if ((int)image->depth < 0) {
        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar56 + 0x2b9a30))
                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),
                 SUB84(dVar60,0));
      if (image->type != UndefinedType) {
        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);
      }
      if (CVar50 != UndefinedColorspace) {
        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);
      }
      uVar32 = image->total_colors;
      if (image->storage_class == DirectClass) {
        if (uVar32 != 0) {
          (**(code **)(puVar56 + 0x2b9588))
                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);
          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);
        }
      }
      else {
        uVar17 = image->colors;
        dVar60 = (double)(int)uVar17;
        if ((int)uVar17 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        if (uVar17 < uVar32) {
          dVar62 = (double)(int)uVar32;
          if ((int)uVar32 < 0) {
            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)
                     ,SUB84(dVar62,0),dVar60);
        }
        else {
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)
                     ,SUB84(dVar60,0));
        }
      }
      dVar60 = (image->error).mean_error_per_pixel;
      if (dVar60 != 0.0) {
        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),(image->error).normalized_mean_error,
                   (image->error).normalized_maximum_error);
      }
      iVar8 = (int)image->extent;
      iVar9 = *(int *)(puVar56 + 0x2b8dd4);
      if (*(int *)&image->extent != 0 || iVar8 != 0) {
        (**(code **)(puVar56 + 0x2b9588))
                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,
                   auStack_310d + 1);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);
        iVar9 = *(int *)(puVar56 + 0x2b8dd4);
      }
      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));
      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);
      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);
      iVar7 = *(int *)(puVar56 + 0x2b8dcc);
      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);
      if (dVar62 < *(double *)(iVar7 + 0x1410)) {
        uVar32 = (uint)dVar62;
      }
      else {
        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;
      }
      if (dVar60 < *(double *)(iVar7 + 0x1410)) {
        uVar17 = (uint)dVar60;
      }
      else {
        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;
      }
      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);
      if (dVar65 < *(double *)(iVar7 + 0x1410)) {
        uVar18 = (uint)dVar65;
      }
      else {
        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;
      }
      (**(code **)(puVar56 + 0x2b9a30))
                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),
                 (int)uVar61,uVar18,uVar17,uVar32);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);
      pcVar59 = *(code **)(puVar56 + 0x2b9978);
    }
    else {
      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);
      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);
      if (iVar7 == 0) {
        sVar37 = 0;
        pCStack_4190 = (ChannelFeatures *)0x0;
        piVar19 = (int *)0x0;
        iVar9 = 0;
        iVar8 = 0;
      }
      else {
        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);
        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);
        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);
        if (iVar8 == 0) {
          iVar9 = 0;
          iVar8 = 0;
        }
        else {
          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);
          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);
        }
        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);
        if (iVar10 == 0) {
          pCStack_4190 = (ChannelFeatures *)0x0;
        }
        else {
          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);
          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);
        }
      }
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);
      if (image->magick_filename[0] != '\0') {
        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);
        if (iVar10 != 0) {
          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);
        }
      }
      pcVar33 = image->magick;
      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);
      if (iVar10 == 0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);
      }
      else {
        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);
        if (iVar11 == 0) {
          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);
        }
        else {
          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);
        }
        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);
        if (iVar11 != 0) {
          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);
          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);
        }
      }
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);
      dVar60 = (double)(int)image->columns;
      if ((int)image->columns < 0) {
        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
      }
      dVar66 = (double)(int)image->rows;
      if ((int)image->rows < 0) {
        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar56 + 0x2b9a30))
                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),
                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,
                 (double)(image->tile_offset).y);
      sVar42 = image->magick_columns;
      sVar40 = image->magick_rows;
      if (((sVar42 != 0) || (sVar40 != 0)) &&
         ((sVar42 != image->columns || (image->rows != sVar40)))) {
        dVar60 = (double)(int)sVar42;
        if ((int)sVar42 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        dVar66 = (double)(int)sVar40;
        if ((int)sVar40 < 0) {
          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),dVar66);
      }
      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);
      pcVar59 = *(code **)(puVar56 + 0x2b924c);
      if ((image->resolution).x != 0.0) {
        dVar60 = (image->resolution).y;
        if (dVar60 != 0.0) {
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,
                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);
          dVar60 = (double)(int)image->columns;
          if ((int)image->columns < 0) {
            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          }
          dVar60 = dVar60 / (image->resolution).x;
          dVar66 = (double)(int)image->rows;
          channel_moments_00 = SUB84(dVar60,0);
          if ((int)image->rows < 0) {
            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)
                     ,channel_moments_00,dVar66 / (image->resolution).y);
        }
        pcVar59 = *(code **)(puVar56 + 0x2b924c);
      }
      uVar29 = (*pcVar59)(0x41,image->units);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);
      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);
      if (image->type != IVar20) {
        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);
      }
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);
      if (sVar37 != 0) {
        sVar40 = image->depth;
        dVar60 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        if (sVar40 == sVar37) {
          channel_moments_00 = SUB84(dVar60,0);
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)
                    );
        }
        else {
          dVar66 = (double)(int)sVar40;
          if ((int)sVar40 < 0) {
            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          }
          channel_moments_00 = SUB84(dVar66,0);
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)
                     ,channel_moments_00,dVar60);
        }
      }
      if (piVar19 != (int *)0x0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);
        if (CVar50 < JzazbzColorspace) {
                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          sVar16 = (*(code *)(puVar56 +
                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +
                             0x2c0d9c))();
          return sVar16;
        }
        if ((int)image->number_channels < 1) {
          PVar41 = image->alpha_trait;
        }
        else {
          iVar10 = 0;
          iVar11 = *(int *)(puVar56 + 0x2b8dd0);
          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          piVar39 = piVar19;
          do {
            dVar66 = (double)iVar10;
            dVar64 = (double)*piVar39;
            if (*piVar39 < 0) {
              dVar64 = dVar64 + dVar60;
            }
            iVar10 = iVar10 + 1;
            (**(code **)(puVar56 + 0x2b9a30))
                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),
                       dVar64);
            piVar39 = piVar39 + 0x1e;
          } while (iVar10 < (int)image->number_channels);
          PVar41 = image->alpha_trait;
        }
        if (PVar41 != UndefinedPixelTrait) {
          dVar60 = (double)piVar19[0x78];
          if (piVar19[0x78] < 0) {
            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)
                     ,SUB84(dVar60,0));
        }
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);
        dVar60 = (double)(int)image->columns;
        if ((int)image->columns < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        dVar66 = (double)(int)image->rows;
        if ((int)image->rows < 0) {
          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        channel_moments_00 = SUB84(dVar60 * dVar66,0);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,
                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));
        if (CVar50 < JzazbzColorspace) {
                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          sVar16 = (*(code *)(puVar56 +
                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +
                             0x2c0d9c))();
          return sVar16;
        }
        if ((int)image->number_channels < 1) {
          PVar41 = image->alpha_trait;
        }
        else {
          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);
          iVar11 = *(int *)(puVar56 + 0x2b8dd0);
          pCVar3 = channel_moments_00 + -0x35;
          iVar10 = 0;
          do {
            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);
            iVar12 = iVar10 + 1;
            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);
            iVar10 = iVar12;
          } while (iVar12 < (int)image->number_channels);
          PVar41 = image->alpha_trait;
        }
        if (PVar41 != UndefinedPixelTrait) {
          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))
                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);
        }
        if ((CVar50 != LinearGRAYColorspace) &&
           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {
          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);
          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);
        }
        (**(code **)(puVar56 + 0x2b94ac))(piVar19);
      }
      if (iVar8 != 0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);
        if (CVar50 == GRAYColorspace) {
          PrintChannelMoments(file_00,CyanPixelChannel,
                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,
                              channel_moments_00);
          if (image->alpha_trait != UndefinedPixelTrait) {
            iVar10 = *(int *)(puVar56 + 0x2b8dd0);
LAB_000f339c:
            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,
                                channel_moments_00);
            goto LAB_000f33c0;
          }
LAB_000f1160:
          pcVar59 = *(code **)(puVar56 + 0x2b94ac);
        }
        else {
          if (CVar50 < HCLColorspace) {
            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;
            PrintChannelMoments(file_00,CyanPixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,
                                channel_moments_00);
            PrintChannelMoments(file_00,CbPixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,
                                channel_moments_00);
            PrintChannelMoments(file_00,BluePixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,
                                channel_moments_00);
            PrintChannelMoments(file_00,BlackPixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,
                                channel_moments_00);
            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;
LAB_000f1124:
            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);
            PrintChannelMoments(file_00,CompositePixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,
                                channel_moments_00);
            goto LAB_000f1160;
          }
          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {
            PrintChannelMoments(file_00,CyanPixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,
                                channel_moments_00);
            PrintChannelMoments(file_00,CbPixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,
                                channel_moments_00);
            PrintChannelMoments(file_00,BluePixelChannel,
                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,
                                channel_moments_00);
LAB_000f3384:
            PVar41 = image->alpha_trait;
          }
          else {
LAB_000f33e4:
            iVar10 = *(int *)(puVar56 + 0x2b8dd0);
            if ((int)image->number_channels < 1) goto LAB_000f3384;
            channel_moments_00 = (ChannelMoments *)0x0;
            iVar11 = *(int *)(puVar56 + 0x2b8dd4);
            do {
              (**(code **)(puVar56 + 0x2b9268))
                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,
                         (double)(int)channel_moments_00);
              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)
                                  ,dVar62,channel_moments_00);
              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);
            } while ((int)channel_moments_00 < (int)image->number_channels);
            PVar41 = image->alpha_trait;
          }
          if (PVar41 != UndefinedPixelTrait) {
LAB_000f3398:
            iVar10 = *(int *)(puVar56 + 0x2b8dd0);
            goto LAB_000f339c;
          }
LAB_000f33c0:
          pcVar59 = *(code **)(puVar56 + 0x2b94ac);
          if (CVar50 != GRAYColorspace) goto LAB_000f1124;
        }
        (*pcVar59)(iVar8);
      }
      if (iVar9 != 0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);
        if (0 < *(int *)(iVar9 + 0x90)) {
          iVar10 = *(int *)(puVar56 + 0x2b8dd0);
          puVar14 = (undefined4 *)(iVar9 + 0x94);
          iVar8 = *(int *)(puVar56 + 0x2b8dd4);
          iVar11 = 0;
          do {
            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);
            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);
            iVar12 = *(int *)(iVar9 + 0x90);
            if (iVar11 < iVar12 + -1) {
              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);
              iVar12 = *(int *)(iVar9 + 0x90);
            }
            iVar11 = iVar11 + 1;
            puVar14 = puVar14 + 1;
          } while (iVar11 < iVar12);
        }
        iVar8 = *(int *)(puVar56 + 0x2b8dd8);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);
        if (0 < (int)image->number_channels) {
          iVar11 = *(int *)(puVar56 + 0x2b8dcc);
          iStack_418c = 0;
          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);
          iVar10 = *(int *)(puVar56 + 0x2b8dd0);
          iStack_4180 = 0;
          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          do {
            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);
            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {
              dVar66 = (double)iVar12;
              if (iVar12 < 0) {
                dVar66 = dVar66 + dVar62;
              }
              iVar58 = 0;
              iVar12 = *(int *)(puVar56 + 0x2b8dd0);
              (**(code **)(puVar56 + 0x2b9a30))
                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));
              iVar22 = *(int *)(puVar56 + 0x2b8dd4);
              do {
                (**(code **)(puVar56 + 0x2b9a30))
                          (file_00,iVar12 + -0x66c0,
                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),
                           SUB84((double)iVar58 + dVar60,0));
                if (0 < *(int *)(iVar9 + 0x90)) {
                  iVar55 = 0;
                  do {
                    while( true ) {
                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();
                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);
                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;
                      iVar55 = iVar55 + 1;
                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);
                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;
                    }
                    iVar55 = iVar55 + 1;
                  } while (iVar55 < *(int *)(iVar9 + 0x90));
                }
LAB_000f2c54:
                iVar58 = iVar58 + 1;
                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);
              } while (iVar58 != 7);
            }
            iStack_4180 = iStack_4180 + 1;
            iStack_418c = iStack_418c + 0xc;
          } while (iStack_4180 < (int)image->number_channels);
        }
        (**(code **)(puVar56 + 0x2b94ac))(iVar9);
      }
      if (pCStack_4190 != (ChannelFeatures *)0x0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);
        if (CVar50 == GRAYColorspace) {
          PrintChannelFeatures
                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),
                     pCStack_4190);
LAB_000f16e0:
          PVar41 = image->alpha_trait;
        }
        else {
          if (GRAYColorspace < CVar50) {
            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;
            PrintChannelFeatures
                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),
                       pCStack_4190);
            PrintChannelFeatures
                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),
                       pCStack_4190);
            PrintChannelFeatures
                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),
                       pCStack_4190);
            goto LAB_000f16e0;
          }
          if (CVar50 == CMYKColorspace) {
            PrintChannelFeatures
                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),
                       pCStack_4190);
            PrintChannelFeatures
                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),
                       pCStack_4190);
            PrintChannelFeatures
                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),
                       pCStack_4190);
            PrintChannelFeatures
                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),
                       pCStack_4190);
            goto LAB_000f16e0;
          }
LAB_000f348c:
          iVar8 = *(int *)(puVar56 + 0x2b8dd0);
          if ((int)image->number_channels < 1) goto LAB_000f16e0;
          PVar43 = CyanPixelChannel;
          do {
            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);
            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);
            PVar43 = PVar43 + CbPixelChannel;
          } while ((int)PVar43 < (int)image->number_channels);
          PVar41 = image->alpha_trait;
        }
        if (PVar41 != UndefinedPixelTrait) {
          PrintChannelFeatures
                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),
                     pCStack_4190);
        }
        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);
      }
      if (iVar7 != 0) {
        if (CVar50 == CMYKColorspace) {
          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();
          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);
          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);
        }
        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {
          uVar63 = 0;
          sVar37 = image->columns;
          iVar7 = 0;
          pcVar59 = *(code **)(puVar56 + 0x2b9c50);
          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {
            sVar37 = image->columns;
            sVar40 = 0;
            if (0 < (int)sVar37) {
              do {
                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&
                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {
                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);
                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);
                  uStack_4158 = image->fuzz;
                  aCStack_4168[0] = image->storage_class;
                  aCStack_4168[1] = image->colorspace;
                  sStack_4150 = image->depth;
                  aCStack_4160[0] = image->alpha_trait;
                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);
                  if (iVar8 != 0) {
                    pPVar31 = image->channel_map;
                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);
                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);
                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);
                    if (pPVar31[3].traits != UndefinedPixelTrait) {
                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);
                    }
                    if (pPVar31[4].traits != UndefinedPixelTrait) {
                      aCStack_4160[0] = BlendPixelTrait;
                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);
                    }
                    if (pPVar31[5].traits != UndefinedPixelTrait) {
                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);
                    }
                  }
                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);
                  (**(code **)(puVar56 + 0x2b9a30))
                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);
                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);
                  (**(code **)(puVar56 + 0x2b9a30))
                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);
                  goto LAB_000f1940;
                }
                sVar40 = sVar40 + 1;
                iVar8 = iVar8 + image->number_channels * 4;
              } while (sVar37 != sVar40);
            }
            iVar7 = iVar7 + 1;
            pcVar59 = *(code **)(puVar56 + 0x2b9c50);
            if ((int)image->rows <= iVar7) break;
          }
        }
LAB_000f1940:
        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);
        if (iVar7 == 0) {
          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);
          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);
          if (iVar7 != 0) {
            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);
            dVar60 = (double)iVar7;
            if (iVar7 < 0) {
              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
            }
            (**(code **)(puVar56 + 0x2b9a30))
                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,
                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));
          }
        }
        else {
          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);
          dVar60 = (double)iVar7;
          if (iVar7 < 0) {
            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)
                     ,SUB84(dVar60,0));
          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);
          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);
        }
      }
      if (image->storage_class == PseudoClass) {
        dVar60 = (double)(int)image->colors;
        if ((int)image->colors < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0));
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);
        if (0x400 < image->colors) goto LAB_000f19dc;
        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);
        pPVar53 = image->colormap;
        if ((int)image->colors < 1) goto LAB_000f19dc;
        iVar8 = *(int *)(puVar56 + 0x2b8dd8);
        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;
        iVar9 = *(int *)(puVar56 + 0x2b8dd8);
        iVar10 = *(int *)(puVar56 + 0x2b8dd0);
        iVar7 = 0;
        do {
          pPVar25 = pPVar53;
          pCVar5 = aCStack_4168;
          do {
            pCVar28 = pCVar5;
            pPVar24 = pPVar25;
            puStack_4198 = auStack_210c;
            pPVar25 = (PixelInfo *)&pPVar24->fuzz;
            CVar38 = pPVar24->colorspace;
            CVar35 = pPVar24->alpha_trait;
            CVar34 = *(ClassType *)&pPVar24->field_0xc;
            *pCVar28 = pPVar24->storage_class;
            pCVar28[1] = CVar38;
            pCVar28[2] = CVar35;
            pCVar28[3] = CVar34;
            pCVar5 = pCVar28 + 4;
          } while (pPVar25 != (PixelInfo *)&pPVar53->index);
          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);
          pcVar59 = *(code **)(puVar56 + 0x2b9d28);
          pCVar28[4] = *(ClassType *)pPVar25;
          pCVar28[5] = CVar34;
          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);
          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);
          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);
          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);
          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);
          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);
          if (aCStack_4168[1] == CMYKColorspace) {
            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);
            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);
          }
          pcVar59 = *(code **)(puVar56 + 0x2b9d84);
          if (aCStack_4160[0] != UndefinedPixelTrait) {
            (*pcVar59)(acStack_110c,iVar11,0x1000);
            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);
            pcVar59 = *(code **)(puVar56 + 0x2b9d84);
          }
          pPVar53 = pPVar53 + 1;
          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);
          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);
          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);
          iVar12 = iVar7 + 1;
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),
                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);
          iVar7 = iVar12;
        } while (iVar12 < (int)image->colors);
        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);
      }
      else {
LAB_000f19dc:
        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);
      }
      puStack_4198 = auStack_210c;
      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);
      }
      if ((image->error).normalized_mean_error != 0.0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);
      }
      pcVar59 = *(code **)(puVar56 + 0x2b924c);
      if ((image->error).normalized_maximum_error != 0.0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);
        pcVar59 = *(code **)(puVar56 + 0x2b924c);
      }
      uVar29 = (*pcVar59)(0x23,image->rendering_intent);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);
      if (image->gamma != 0.0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);
      }
      if (((((image->chromaticity).red_primary.x != 0.0) ||
           ((image->chromaticity).green_primary.x != 0.0)) ||
          ((image->chromaticity).blue_primary.x != 0.0)) ||
         ((image->chromaticity).white_point.x != 0.0)) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,
                   *(undefined4 *)&(image->chromaticity).red_primary.x,
                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),
                   (image->chromaticity).red_primary.y);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,
                   *(undefined4 *)&(image->chromaticity).green_primary.x,
                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),
                   (image->chromaticity).green_primary.y);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,
                   *(undefined4 *)&(image->chromaticity).blue_primary.x,
                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),
                   (image->chromaticity).blue_primary.y);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,
                   *(undefined4 *)&(image->chromaticity).white_point.x,
                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),
                   (image->chromaticity).white_point.y);
      }
      sVar40 = (image->extract_info).width;
      sVar37 = (image->extract_info).height;
      if (sVar40 * sVar37 != 0) {
        dVar60 = (double)(int)sVar40;
        if ((int)sVar40 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        dVar62 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,
                   (double)(image->extract_info).y);
      }
      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)
      ;
      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)
      ;
      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)
      ;
      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)
      ;
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);
      sVar40 = (image->page).width;
      sVar37 = (image->page).height;
      if (sVar40 == 0) {
        iVar7 = (image->page).x;
        iVar8 = (image->page).y;
        if ((sVar37 != 0) || (iVar7 != 0)) {
          dVar60 = 0.0;
          goto LAB_000f29c0;
        }
        dVar60 = 0.0;
        if (iVar8 != 0) goto LAB_000f29c0;
LAB_000f1db8:
        pcVar59 = *(code **)(puVar56 + 0x2b924c);
      }
      else {
        iVar7 = (image->page).x;
        iVar8 = (image->page).y;
        dVar60 = (double)(int)sVar40;
        if ((int)sVar40 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
LAB_000f29c0:
        dVar62 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);
        iVar8 = (image->page).x;
        iVar7 = (image->page).y;
        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {
          dVar60 = (double)iVar8;
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)
                     ,SUB84(dVar60,0),(double)iVar7);
          goto LAB_000f1db8;
        }
      }
      uVar29 = (*pcVar59)(0x15,image->dispose);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);
      sVar37 = image->delay;
      if (sVar37 != 0) {
        dVar60 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),(double)image->ticks_per_second);
      }
      sVar37 = image->iterations;
      if (sVar37 != 1) {
        dVar60 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0));
      }
      sVar37 = image->duration;
      if (sVar37 != 0) {
        dVar60 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0));
      }
      sVar37 = image->scene;
      if (image->next == (_Image *)0x0) {
        pcVar59 = *(code **)(puVar56 + 0x2b9764);
        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;
        pcVar59 = *(code **)(puVar56 + 0x2b924c);
        if (sVar37 != 0) {
          dVar60 = (double)(int)sVar37;
          if ((int)sVar37 < 0) {
            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar56 + 0x2b9a30))
                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)
                     ,SUB84(dVar60,0));
          goto LAB_000f1ed4;
        }
      }
      else {
        pcVar59 = *(code **)(puVar56 + 0x2b9764);
LAB_000f1e64:
        iVar7 = (*pcVar59)(image);
        dVar60 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        dVar62 = (double)iVar7;
        if (iVar7 < 0) {
          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0),dVar62);
LAB_000f1ed4:
        pcVar59 = *(code **)(puVar56 + 0x2b924c);
      }
      uVar29 = (*pcVar59)(0xe,image->compression);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);
      sVar37 = image->quality;
      if (sVar37 != 0) {
        dVar60 = (double)(int)sVar37;
        if ((int)sVar37 < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),
                   SUB84(dVar60,0));
      }
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);
      if (image->montage != (char *)0x0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);
      }
      if (image->directory != (char *)0x0) {
        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();
        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);
        pcVar33 = image->directory;
        iVar8 = (int)*pcVar33;
        if (iVar8 != 0) {
          iVar11 = *(int *)(puVar56 + 0x2b8dd0);
          iVar12 = *(int *)(puVar56 + 0x2b8e38);
          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
          iVar9 = *(int *)(puVar56 + 0x2b8dd0);
          iVar10 = *(int *)(puVar56 + 0x2b8dd0);
          dVar62 = dVar60;
          do {
            iVar22 = 1;
            pcVar54 = pcVar33;
            if (1 < (iVar8 + 1U & 0xff)) {
              do {
                pcVar54 = pcVar54 + 1;
                if ((byte)(*pcVar54 + 1U) < 2) break;
              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);
              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;
            }
            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);
            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);
            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);
            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);
            (**(code **)(puVar56 + 0x2b9a90))(uVar29);
            if (iVar8 == 0) {
              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);
            }
            else {
              dVar66 = (double)*(int *)(iVar8 + 0x3340);
              if (*(int *)(iVar8 + 0x3340) < 0) {
                dVar66 = dVar66 + dVar62;
              }
              dVar64 = (double)*(int *)(iVar8 + 0x3344);
              if (*(int *)(iVar8 + 0x3344) < 0) {
                dVar64 = dVar64 + dVar60;
              }
              (**(code **)(puVar56 + 0x2b9a30))
                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),
                         dVar64,iVar8 + 0x2340);
              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);
              (**(code **)(puVar56 + 0x2b9180))(iVar8);
              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);
              while (iVar22 != 0) {
                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);
                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);
                if (iVar22 != 0) {
                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);
                }
                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);
              }
              (**(code **)(puVar56 + 0x2b9438))(iVar8);
            }
            iVar8 = (int)pcVar54[1];
            pcVar33 = pcVar54 + 1;
          } while (iVar8 != 0);
        }
        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);
      }
      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);
      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);
      if (iVar7 != 0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);
        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);
        if (0x50 < uVar32) {
          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);
        }
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);
      }
      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);
      if (puVar21 != (undefined8 *)0x0) {
        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);
        if (0 < (int)aCStack_4168[0]) {
          iVar8 = *(int *)(puVar56 + 0x2b8dd0);
          iVar7 = 0;
          puVar57 = puVar21;
          do {
            iVar7 = iVar7 + 1;
            (**(code **)(puVar56 + 0x2b9268))
                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);
            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);
            puVar57 = puVar57 + 2;
          } while (iVar7 < (int)aCStack_4168[0]);
        }
        (**(code **)(puVar56 + 0x2b94ac))(puVar21);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);
        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);
      }
      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);
      if (iVar7 != 0) {
        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);
        if (0 < (int)aCStack_4168[0]) {
          iVar8 = *(int *)(puVar56 + 0x2b8dd0);
          iVar9 = 0;
          do {
            iVar9 = iVar9 + 1;
            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);
            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);
          } while (iVar9 < (int)aCStack_4168[0]);
        }
        (**(code **)(puVar56 + 0x2b94ac))(iVar7);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);
        (**(code **)(puVar56 + 0x2b9a30))
                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);
        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);
      }
      (**(code **)(puVar56 + 0x2b9378))(image);
      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);
      if (iVar7 != 0) {
        iVar8 = *(int *)(puVar56 + 0x2b8dd0);
        iVar9 = *(int *)(puVar56 + 0x2b8dd4);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);
        iVar10 = *(int *)(puVar56 + 0x2b8dd4);
        iVar11 = *(int *)(puVar56 + 0x2b8dd0);
        do {
          do {
            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);
          } while (iVar12 == 0);
          (**(code **)(puVar56 + 0x2b9234))(iVar12);
          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);
          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);
          if (iVar22 == 0) {
            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);
            if (0 < iVar22 + -5) {
              iVar55 = *(int *)(puVar56 + 0x2b8dd0);
              iVar58 = 0;
              do {
                iVar52 = iVar58 + 1;
                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);
                if (*(char *)(iVar23 + iVar58) == '\x1c') {
                  (**(code **)(puVar56 + 0x2b9354))(iVar12);
                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);
                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);
                  if (uVar32 < 0xd7) {
                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c
                                       ))();
                    return sVar16;
                  }
                  iVar52 = iVar58 + 5;
                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);
                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);
                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);
                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);
                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));
                  if ((uint)(iVar22 - iVar52) <= uVar32) {
                    uVar32 = iVar22 - iVar52;
                  }
                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);
                  if (iVar58 != 0) {
                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);
                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);
                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);
                    if (piVar19 != (int *)0x0) {
                      iVar23 = *piVar19;
                      piVar39 = piVar19;
                      while (iVar23 != 0) {
                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);
                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);
                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);
                        iVar23 = piVar39[1];
                        *piVar39 = iVar26;
                        piVar39 = piVar39 + 1;
                      }
                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);
                    }
                    (**(code **)(puVar56 + 0x2b9560))(iVar58);
                  }
                }
                else {
                  uVar32 = 1;
                }
                iVar58 = iVar52 + uVar32;
              } while (iVar58 < iVar22 + -5);
            }
          }
          pcVar59 = *(code **)(puVar56 + 0x2b93f8);
          if (image->debug != MagickFalse) {
            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);
            pcVar59 = *(code **)(puVar56 + 0x2b93f8);
          }
          iVar7 = (*pcVar59)(image);
        } while (iVar7 != 0);
      }
      (**(code **)(puVar56 + 0x2b9180))(image);
      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);
      if (iVar7 != 0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);
        iVar8 = *(int *)(puVar56 + 0x2b8dd0);
        iVar9 = *(int *)(puVar56 + 0x2b8e38);
        do {
          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);
          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);
          if (iVar7 != 0) {
            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);
          }
          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);
        } while (iVar7 != 0);
      }
      (**(code **)(puVar56 + 0x2b99e8))(image);
      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);
      if (iVar7 != 0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);
        iVar8 = *(int *)(puVar56 + 0x2b8dd0);
        iVar9 = *(int *)(puVar56 + 0x2b8e38);
        do {
          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);
          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);
          if (iVar7 != 0) {
            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);
          }
          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);
        } while (iVar7 != 0);
      }
      (**(code **)(puVar56 + 0x2b9d50))();
      iVar7 = (**(code **)(puVar56 + 0x2b970c))();
      if (iVar7 != 0) {
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);
        iVar8 = *(int *)(puVar56 + 0x2b8dd0);
        iVar9 = *(int *)(puVar56 + 0x2b8e38);
        do {
          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);
          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);
          if (iVar7 != 0) {
            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);
          }
          iVar7 = (**(code **)(puVar56 + 0x2b970c))();
        } while (iVar7 != 0);
      }
      puVar48 = auStack_310d + 1;
      iVar7 = *(int *)(puVar56 + 0x2b8dd8);
      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);
      (**(code **)(puVar56 + 0x2b9588))
                (*(undefined4 *)&image->extent,(int)image->extent,1,
                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);
      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;
      (**(code **)(puVar56 + 0x2b9588))
                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);
      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);
      if (1 < uVar32) {
        auStack_310d[uVar32] = 0;
      }
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);
      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {
        dVar60 = (double)(int)image->columns;
        if ((int)image->columns < 0) {
          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        dVar62 = (double)(int)image->rows;
        if ((int)image->rows < 0) {
          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);
        }
        uVar63 = (**(code **)(puVar56 + 0x2b8e40))
                           ((dVar60 * dVar62) / dVar65 +
                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));
        (**(code **)(puVar56 + 0x2b9588))
                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);
        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);
      }
      iVar8 = *(int *)(puVar56 + 0x2b8dd4);
      (**(code **)(puVar56 + 0x2b9a30))
                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),
                 (int)uVar61);
      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));
      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);
      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);
      iVar7 = *(int *)(puVar56 + 0x2b8dcc);
      if (dVar60 < *(double *)(iVar7 + 0x1410)) {
        uVar32 = (uint)dVar60;
      }
      else {
        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;
      }
      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);
      if (dVar60 < *(double *)(iVar7 + 0x1410)) {
        uVar17 = (uint)dVar60;
      }
      else {
        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;
      }
      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);
      if (dVar65 < *(double *)(iVar7 + 0x1410)) {
        uVar18 = (uint)dVar65;
      }
      else {
        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;
      }
      (**(code **)(puVar56 + 0x2b9a30))
                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);
      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);
      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);
      pcVar59 = *(code **)(puVar56 + 0x2b9978);
    }
  }
  else {
    type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);
    iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);
    if (iVar8 == 0) {
      puStack_4198 = (undefined1 *)0x0;
    }
    else {
      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);
    }
    if (image->signature != 0xabacadab) {
      uVar29 = 0x90;
      pcVar59 = *(code **)(puVar56 + 0x2b9af4);
      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;
LAB_000f38e8:
      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,
                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);
      return sVar16;
    }
    pcVar59 = *(code **)(puVar56 + 0x2b99f8);
    if (image->debug != MagickFalse) {
      (**(code **)(puVar56 + 0x2b96cc))
                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,
                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,
                 image->filename);
      pcVar59 = *(code **)(puVar56 + 0x2b99f8);
    }
    pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);
    if (pFVar49 == (FILE *)0x0) {
      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();
      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();
      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);
      (**(code **)(puVar56 + 0x2b940c))
                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,
                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,
                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)
      ;
      (**(code **)(puVar56 + 0x2b9560))(uVar36);
      (**(code **)(puVar56 + 0x2b979c))(uVar29);
      (**(code **)(puVar56 + 0x2b923c))(uVar29);
      (**(code **)(puVar56 + 0x2b9dd8))();
      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);
      return sVar16;
    }
    (**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);
    ppcVar15 = &pFVar49->_IO_write_base;
    dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);
    dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);
    do {
      while (type != MinimumStatistic) {
        *(double *)(ppcVar15 + 2) = dVar65;
        ppcVar15 = ppcVar15 + 0x1e;
        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;
      }
      *(double *)ppcVar15 = dVar60;
      ppcVar15 = ppcVar15 + 0x1e;
    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);
LAB_000efcf0:
    if (0 < (int)image->rows) {
      iVar8 = 0;
      sVar37 = image->columns;
      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);
      pcVar59 = *(code **)(puVar56 + 0x2b9c50);
      do {
        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);
        if (iVar9 == 0) break;
        sVar37 = image->columns;
        sVar40 = 0;
        if (0 < (int)sVar37) {
          sVar42 = image->number_channels;
          pPVar31 = image->channel_map;
          PVar41 = pPVar31[6].traits;
          do {
            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&
                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {
              sVar40 = sVar40 + 1;
              iVar9 = iVar10;
              if (sVar37 == sVar40) {
                sVar40 = image->rows;
                goto LAB_000efe04;
              }
            }
            if (0 < (int)sVar42) {
              pfVar30 = (float *)(iVar10 + sVar42 * -4);
              pPVar27 = pPVar31;
LAB_000efd9c:
              do {
                PVar43 = pPVar27->channel;
                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {
                  dVar65 = (double)*pfVar30;
                  if (type == MinimumStatistic) {
                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {
                      pPVar27 = pPVar27 + 1;
                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;
                      pfVar30 = pfVar30 + 1;
                      if (pPVar31 + sVar42 == pPVar27) break;
                      goto LAB_000efd9c;
                    }
                  }
                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {
                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;
                  }
                }
                pPVar27 = pPVar27 + 1;
                pfVar30 = pfVar30 + 1;
              } while (pPVar31 + sVar42 != pPVar27);
            }
            sVar40 = sVar40 + 1;
            iVar9 = iVar10;
          } while (sVar37 != sVar40);
        }
        sVar40 = image->rows;
LAB_000efe04:
        iVar8 = iVar8 + 1;
        pcVar59 = *(code **)(puVar56 + 0x2b9c50);
      } while (iVar8 < (int)sVar40);
    }
    (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);
    if (CVar50 < JzazbzColorspace) {
                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      sVar16 = (*(code *)(puVar56 +
                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))
                         ();
      return sVar16;
    }
    if ((int)image->number_channels < 1) {
      PVar41 = image->alpha_trait;
    }
    else {
      PVar43 = CyanPixelChannel;
      iVar7 = *(int *)(puVar56 + 0x2b8dd0);
      do {
        PrintChannelLocations
                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,
                   (ChannelStatistics *)pFVar49);
        PVar43 = PVar43 + CbPixelChannel;
      } while ((int)PVar43 < (int)image->number_channels);
      PVar41 = image->alpha_trait;
    }
    if (PVar41 != UndefinedPixelTrait) {
      PrintChannelLocations
                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type
                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);
    }
    pcVar59 = *(code **)(puVar56 + 0x2b94ac);
  }
  (*pcVar59)(pFVar49);
  iVar7 = (**(code **)(puVar56 + 0x2b9208))(file_00);
  if (iStack_10c == *piVar13) {
    return (uint)(iVar7 == 0);
  }
  (**(code **)(puVar56 + 0x2b9550))();
LAB_000f38b4:
  sVar16 = (**(code **)(puVar56 + 0x2b9af4))
                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,
                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c);
  return sVar16;
}



uint FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,
                 double param_5,int param_6)

{
  undefined1 uVar1;
  int *piVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int *piVar10;
  undefined4 *puVar11;
  undefined *puVar12;
  undefined8 *puVar13;
  uint uVar14;
  uint uVar15;
  int *piVar16;
  int iVar17;
  int *piVar18;
  int iVar19;
  int *piVar20;
  undefined4 uVar21;
  int *piVar22;
  float *pfVar23;
  int *piVar24;
  char *pcVar25;
  undefined4 uVar26;
  int iVar27;
  int iVar28;
  int iVar29;
  double *pdVar30;
  double *pdVar31;
  undefined *puVar32;
  undefined1 *puVar33;
  undefined *puVar34;
  int iVar35;
  uint uVar36;
  char *pcVar37;
  undefined *puVar38;
  undefined8 *puVar39;
  code *pcVar40;
  double dVar41;
  undefined8 uVar42;
  double dVar43;
  double dVar44;
  undefined8 uVar45;
  double dVar46;
  double dVar47;
  ulonglong uVar48;
  double *pdStack_4198;
  int iStack_4190;
  int iStack_418c;
  int iStack_4180;
  undefined4 uStack_416c;
  int aiStack_4168 [4];
  undefined8 uStack_4158;
  int iStack_4150;
  double dStack_4140;
  double dStack_4138;
  double dStack_4130;
  double dStack_4128;
  double dStack_4120;
  double dStack_4118;
  undefined1 auStack_410c [4095];
  undefined1 auStack_310d [4097];
  undefined1 auStack_210c [4096];
  undefined1 auStack_110c [4096];
  int iStack_10c;
  double *pdStack_108;
  int iStack_104;
  undefined8 *puStack_100;
  undefined4 uStack_fc;
  undefined *puStack_f8;
  undefined4 uStack_f4;
  undefined *puStack_f0;
  uint uStack_ec;
  undefined4 uStack_e8;
  code *pcStack_e4;
  double dStack_e0;
  double dStack_d8;
  double dStack_d0;
  double local_b0;
  double local_a8;
  double local_a0;
  double local_98;
  undefined8 local_88;
  undefined4 local_80 [15];
  int *local_44;
  
  puVar12 = PTR___stack_chk_guard_003a9230;
  local_44 = *(int **)PTR___stack_chk_guard_003a9230;
  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);
  puVar13 = &local_88;
  do {
    puVar3 = puVar11 + 4;
    *(undefined4 *)puVar13 = *puVar11;
    uVar26 = puVar11[2];
    uVar21 = puVar11[3];
    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];
    *(undefined4 *)(puVar13 + 1) = uVar26;
    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;
    puVar11 = puVar3;
    puVar13 = puVar13 + 2;
  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));
  pdVar30 = (double *)(param_6 + param_2 * 0x80);
  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar46 = pdVar30[9];
  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar30[10];
  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);
  local_b0 = dVar46;
  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar46 = pdVar30[0xb];
  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar30[0xc];
  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);
  local_b0 = dVar46;
  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = pdVar30[0xd];
  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = pdVar30[0xe];
  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar46 = param_5 * pdVar30[0xf];
  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar30[0xf];
  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);
  local_b0 = dVar46;
  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);
  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;
  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;
  iVar4 = 0;
  puVar13 = &local_88;
  do {
    puVar39 = puVar13 + 1;
    pdVar31 = pdVar30 + 1;
    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
    dVar47 = *pdVar30;
    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);
    dVar47 = dVar47 / dVar41;
    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
    local_98 = *pdVar30;
    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);
    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);
    iVar5 = iVar4 + 1;
    dVar41 = (double)iVar4 + dVar46;
    puVar32 = puVar34;
    local_a8 = dVar47;
    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);
    uVar36 = uVar36 + iVar4;
    pdVar30 = pdVar31;
    iVar4 = iVar5;
    puVar13 = puVar39;
  } while (iVar5 != 8);
  if (local_44 == *(int **)puVar12) {
    return uVar36;
  }
  pcVar40 = IdentifyImage;
  piVar22 = local_44;
  puVar38 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  uVar26 = SUB84(dVar41,0);
  piVar10 = *(int **)(puVar38 + 0x2b971c);
  puStack_f0 = puVar12;
  uStack_f4 = 8;
  iStack_10c = *piVar10;
  pdStack_108 = pdVar31;
  iStack_104 = iVar5;
  puStack_100 = puVar39;
  uStack_fc = param_1;
  puStack_f8 = puVar34;
  uStack_ec = uVar36;
  uStack_e8 = uVar21;
  pcStack_e4 = pcVar40;
  dStack_e0 = dVar47;
  dStack_d8 = param_5;
  dStack_d0 = dVar46;
  if (piVar22 == (int *)0x0) goto LAB_000f38b4;
  if (piVar22[0xcdb] != -0x54535255) {
    uVar21 = 0x213;
    pcVar40 = *(code **)(puVar38 + 0x2b9af4);
    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;
    goto LAB_000f38e8;
  }
  if (piVar22[0xcd4] == 0) {
    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);
    if (puVar32 == (undefined *)0x0) {
LAB_000efed0:
      puVar32 = (undefined *)*puVar11;
    }
  }
  else {
    (**(code **)(puVar38 + 0x2b96cc))
              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,
               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);
    if (puVar32 == (undefined *)0x0) {
      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);
      goto LAB_000efed0;
    }
  }
  uVar36 = piVar22[1];
  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);
  if (iVar4 == 0) {
    piVar16 = piVar22 + 0xbc;
    auStack_310d[1] = 0;
    piVar24 = piVar22 + 0xd0;
    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);
    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);
    (**(code **)(puVar38 + 0x2b9b54))(piVar16);
    puVar12 = puVar32;
    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {
      pcVar40 = *(code **)(puVar38 + 0x2b9198);
      if (*(char *)(piVar22 + 0x4d0) != '\0') {
        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);
        if (iVar4 != 0) {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);
        }
        pcVar40 = *(code **)(puVar38 + 0x2b9198);
      }
      iVar4 = (*pcVar40)(piVar22);
      iVar5 = piVar22[0x9b];
      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&
         (iVar5 == 0)) {
        iVar4 = *(int *)(puVar38 + 0x2b8e38);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);
      }
      else {
        iVar4 = *(int *)(puVar38 + 0x2b8e38);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);
      }
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);
      iVar7 = piVar22[0xcd0];
      iVar5 = piVar22[0xcd1];
      iVar6 = piVar22[6];
      if ((iVar7 == 0) && (iVar5 == 0)) {
LAB_000f0044:
        iVar5 = piVar22[7];
      }
      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {
        dVar41 = (double)iVar7;
        if (iVar7 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar5;
        if (iVar5 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47);
        iVar6 = piVar22[6];
        goto LAB_000f0044;
      }
      dVar41 = (double)iVar6;
      if (iVar6 < 0) {
        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      dVar47 = (double)iVar5;
      if (iVar5 < 0) {
        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),
                 SUB84(dVar41,0),dVar47);
      iVar6 = piVar22[0x8a];
      iVar5 = piVar22[0x8b];
      if (iVar6 == 0) {
        iVar7 = piVar22[0x8c];
        iVar8 = piVar22[0x8d];
        if ((iVar5 != 0) || (iVar7 != 0)) {
          dVar41 = 0.0;
          goto LAB_000f00d4;
        }
        if (iVar8 != 0) {
          dVar41 = 0.0;
          goto LAB_000f00d4;
        }
      }
      else {
        iVar7 = piVar22[0x8c];
        iVar8 = piVar22[0x8d];
        dVar41 = (double)iVar6;
        if (iVar6 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
LAB_000f00d4:
        dVar47 = (double)iVar5;
        if (iVar5 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);
      }
      dVar41 = (double)piVar22[8];
      if (piVar22[8] < 0) {
        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),
                 SUB84(dVar41,0));
      if (piVar22[0xa8] != 0) {
        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);
      }
      if (uVar36 != 0) {
        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);
      }
      uVar36 = piVar22[0xa0];
      if (*piVar22 == 1) {
        if (uVar36 != 0) {
          (**(code **)(puVar38 + 0x2b9588))
                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);
        }
      }
      else {
        uVar14 = piVar22[9];
        dVar41 = (double)(int)uVar14;
        if ((int)uVar14 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        if (uVar14 < uVar36) {
          dVar47 = (double)(int)uVar36;
          if ((int)uVar36 < 0) {
            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)
                     ,SUB84(dVar47,0),dVar41);
        }
        else {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
        }
      }
      if (*(double *)(piVar22 + 0xb6) != 0.0) {
        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));
      }
      iVar5 = *(int *)(puVar38 + 0x2b8dd4);
      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {
        (**(code **)(puVar38 + 0x2b9588))
                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,
                   auStack_310d + 1);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);
        iVar5 = *(int *)(puVar38 + 0x2b8dd4);
      }
      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));
      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);
      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);
      iVar4 = *(int *)(puVar38 + 0x2b8dcc);
      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);
      if (dVar47 < *(double *)(iVar4 + 0x1410)) {
        uVar36 = (uint)dVar47;
      }
      else {
        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      if (dVar41 < *(double *)(iVar4 + 0x1410)) {
        uVar14 = (uint)dVar41;
      }
      else {
        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);
      if (dVar46 < *(double *)(iVar4 + 0x1410)) {
        uVar15 = (uint)dVar46;
      }
      else {
        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),
                 (int)uVar42,uVar15,uVar14,uVar36);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);
      pcVar40 = *(code **)(puVar38 + 0x2b9978);
    }
    else {
      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);
      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);
      if (iVar4 == 0) {
        iVar5 = 0;
        iStack_4190 = 0;
        piVar16 = (int *)0x0;
        iVar7 = 0;
        iVar6 = 0;
      }
      else {
        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);
        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);
        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);
        if (iVar6 == 0) {
          iVar7 = 0;
          iVar6 = 0;
        }
        else {
          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);
          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);
        }
        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);
        if (iVar8 == 0) {
          iStack_4190 = 0;
        }
        else {
          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);
          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);
        }
      }
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);
      if (*(char *)(piVar22 + 0x4d0) != '\0') {
        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);
        if (iVar8 != 0) {
          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);
        }
      }
      piVar24 = piVar22 + 0x8d0;
      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);
      if (iVar8 == 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);
      }
      else {
        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);
        if (iVar9 == 0) {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);
        }
        else {
          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);
        }
        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);
        if (iVar9 != 0) {
          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);
        }
      }
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);
      dVar41 = (double)piVar22[6];
      if (piVar22[6] < 0) {
        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      dVar47 = (double)piVar22[7];
      if (piVar22[7] < 0) {
        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),
                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);
      iVar9 = piVar22[0xcd0];
      iVar8 = piVar22[0xcd1];
      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {
        dVar41 = (double)iVar9;
        if (iVar9 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar8;
        if (iVar8 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47);
      }
      pcVar40 = *(code **)(puVar38 + 0x2b924c);
      if (*(double *)(piVar22 + 0x86) != 0.0) {
        if (*(double *)(piVar22 + 0x88) != 0.0) {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],
                     *(double *)(piVar22 + 0x88));
          dVar41 = (double)piVar22[6];
          if (piVar22[6] < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          dVar47 = (double)piVar22[7];
          if (piVar22[7] < 0) {
            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,
                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),
                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);
        }
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);
      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);
      if (piVar22[0xa8] != iVar8) {
        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);
      }
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);
      if (iVar5 != 0) {
        iVar8 = piVar22[8];
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        if (iVar8 == iVar5) {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
        }
        else {
          dVar47 = (double)iVar8;
          if (iVar8 < 0) {
            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)
                     ,SUB84(dVar47,0),dVar41);
          dVar47 = dVar41;
        }
      }
      if (piVar16 != (int *)0x0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);
        if (uVar36 < 0x22) {
                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar36 = (*(code *)(puVar38 +
                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +
                             0x2c0d9c))();
          return uVar36;
        }
        if (piVar22[0xb0] < 1) {
          iVar5 = piVar22[0xaf];
        }
        else {
          iVar5 = 0;
          iVar8 = *(int *)(puVar38 + 0x2b8dd0);
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          piVar24 = piVar16;
          do {
            dVar44 = (double)iVar5;
            dVar47 = (double)*piVar24;
            if (*piVar24 < 0) {
              dVar47 = dVar47 + dVar41;
            }
            iVar5 = iVar5 + 1;
            (**(code **)(puVar38 + 0x2b9a30))
                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),
                       dVar47);
            piVar24 = piVar24 + 0x1e;
          } while (iVar5 < piVar22[0xb0]);
          iVar5 = piVar22[0xaf];
        }
        if (iVar5 != 0) {
          dVar41 = (double)piVar16[0x78];
          if (piVar16[0x78] < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
        }
        if ((uint)piVar22[8] < 0x11) {
          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /
                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));
        }
        else {
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);
        }
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);
        dVar44 = (double)piVar22[6];
        if (piVar22[6] < 0) {
          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar43 = (double)piVar22[7];
        if (piVar22[7] < 0) {
          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,
                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));
        if (uVar36 < 0x22) {
                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar36 = (*(code *)(puVar38 +
                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +
                             0x2c0d9c))();
          return uVar36;
        }
        if (piVar22[0xb0] < 1) {
          iVar5 = piVar22[0xaf];
        }
        else {
          iVar9 = *(int *)(puVar38 + 0x2b8f68);
          iVar8 = *(int *)(puVar38 + 0x2b8dd0);
          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);
          iVar5 = 0;
          do {
            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);
            dVar47 = dVar44 / dVar41;
            iVar28 = iVar5 + 1;
            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);
            iVar5 = iVar28;
          } while (iVar28 < piVar22[0xb0]);
          iVar5 = piVar22[0xaf];
        }
        if (iVar5 != 0) {
          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;
          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))
                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);
        }
        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {
          iVar8 = *(int *)(puVar38 + 0x2b8dcc);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);
          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;
          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);
        }
        (**(code **)(puVar38 + 0x2b94ac))(piVar16);
      }
      if (iVar6 != 0) {
        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);
        if (uVar36 == 3) {
          dVar47 = dVar41;
          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);
          if (piVar22[0xaf] != 0) {
            iVar5 = *(int *)(puVar38 + 0x2b8dd0);
LAB_000f339c:
            dVar47 = dVar41;
            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);
            goto LAB_000f33c0;
          }
LAB_000f1160:
          pcVar40 = *(code **)(puVar38 + 0x2b94ac);
        }
        else {
          if (uVar36 < 4) {
            if (uVar36 != 2) goto LAB_000f33e4;
            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);
            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);
            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);
            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);
            if (piVar22[0xaf] != 0) goto LAB_000f3398;
LAB_000f1124:
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);
            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);
            dVar47 = dVar41;
            goto LAB_000f1160;
          }
          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {
            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);
            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);
            dVar47 = dVar41;
            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);
LAB_000f3384:
            iVar5 = piVar22[0xaf];
          }
          else {
LAB_000f33e4:
            iVar5 = *(int *)(puVar38 + 0x2b8dd0);
            if (piVar22[0xb0] < 1) goto LAB_000f3384;
            iVar9 = 0;
            iVar8 = *(int *)(puVar38 + 0x2b8dd4);
            do {
              (**(code **)(puVar38 + 0x2b9268))
                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);
              dVar47 = dVar41;
              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);
              iVar9 = iVar9 + 1;
            } while (iVar9 < piVar22[0xb0]);
            iVar5 = piVar22[0xaf];
          }
          if (iVar5 != 0) {
LAB_000f3398:
            iVar5 = *(int *)(puVar38 + 0x2b8dd0);
            goto LAB_000f339c;
          }
LAB_000f33c0:
          pcVar40 = *(code **)(puVar38 + 0x2b94ac);
          if (uVar36 != 3) goto LAB_000f1124;
        }
        (*pcVar40)(iVar6);
      }
      if (iVar7 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);
        if (0 < *(int *)(iVar7 + 0x90)) {
          iVar6 = *(int *)(puVar38 + 0x2b8dd0);
          puVar11 = (undefined4 *)(iVar7 + 0x94);
          iVar5 = *(int *)(puVar38 + 0x2b8dd4);
          iVar8 = 0;
          do {
            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);
            iVar9 = *(int *)(iVar7 + 0x90);
            if (iVar8 < iVar9 + -1) {
              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);
              iVar9 = *(int *)(iVar7 + 0x90);
            }
            iVar8 = iVar8 + 1;
            puVar11 = puVar11 + 1;
          } while (iVar8 < iVar9);
        }
        iVar5 = *(int *)(puVar38 + 0x2b8dd8);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);
        if (0 < piVar22[0xb0]) {
          iVar8 = *(int *)(puVar38 + 0x2b8dcc);
          iStack_418c = 0;
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);
          iVar6 = *(int *)(puVar38 + 0x2b8dd0);
          iStack_4180 = 0;
          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          do {
            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);
            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {
              dVar43 = (double)iVar9;
              if (iVar9 < 0) {
                dVar43 = dVar43 + dVar44;
              }
              iVar27 = 0;
              iVar28 = *(int *)(puVar38 + 0x2b8dd0);
              (**(code **)(puVar38 + 0x2b9a30))
                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));
              iVar29 = *(int *)(puVar38 + 0x2b8dd4);
              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);
              do {
                (**(code **)(puVar38 + 0x2b9a30))
                          (puVar32,iVar28 + -0x66c0,
                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),
                           SUB84((double)iVar27 + dVar41,0));
                if (0 < *(int *)(iVar7 + 0x90)) {
                  iVar9 = 0;
                  pdVar30 = pdStack_4198;
                  do {
                    while( true ) {
                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();
                      dVar47 = *pdVar30;
                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);
                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;
                      iVar9 = iVar9 + 1;
                      pdVar30 = pdVar30 + 9;
                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);
                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;
                    }
                    iVar9 = iVar9 + 1;
                    pdVar30 = pdVar30 + 9;
                  } while (iVar9 < *(int *)(iVar7 + 0x90));
                }
LAB_000f2c54:
                iVar27 = iVar27 + 1;
                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);
                pdStack_4198 = pdStack_4198 + 1;
              } while (iVar27 != 7);
            }
            iStack_4180 = iStack_4180 + 1;
            iStack_418c = iStack_418c + 0xc;
          } while (iStack_4180 < piVar22[0xb0]);
        }
        (**(code **)(puVar38 + 0x2b94ac))(iVar7);
      }
      if (iStack_4190 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);
        if (uVar36 == 3) {
          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);
LAB_000f16e0:
          iVar5 = piVar22[0xaf];
        }
        else {
          if (3 < uVar36) {
            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;
            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);
            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);
            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);
            goto LAB_000f16e0;
          }
          if (uVar36 == 2) {
            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);
            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);
            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);
            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);
            goto LAB_000f16e0;
          }
LAB_000f348c:
          iVar5 = *(int *)(puVar38 + 0x2b8dd0);
          if (piVar22[0xb0] < 1) goto LAB_000f16e0;
          iVar6 = 0;
          do {
            dVar47 = (double)iVar6;
            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);
            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);
            iVar6 = iVar6 + 1;
          } while (iVar6 < piVar22[0xb0]);
          iVar5 = piVar22[0xaf];
        }
        if (iVar5 != 0) {
          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);
        }
        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);
      }
      if (iVar4 != 0) {
        if (uVar36 == 2) {
          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();
          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);
        }
        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {
          uVar45 = 0;
          iVar4 = piVar22[6];
          iVar5 = 0;
          pcVar40 = *(code **)(puVar38 + 0x2b9c50);
          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {
            iVar4 = piVar22[6];
            iVar7 = 0;
            if (0 < iVar4) {
              do {
                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&
                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {
                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);
                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);
                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);
                  aiStack_4168[0] = *piVar22;
                  aiStack_4168[1] = piVar22[1];
                  iStack_4150 = piVar22[8];
                  aiStack_4168[2] = piVar22[0xaf];
                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);
                  if (iVar6 != 0) {
                    iVar4 = piVar22[0xb4];
                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);
                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);
                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);
                    if (*(int *)(iVar4 + 0x28) != 0) {
                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);
                    }
                    if (*(int *)(iVar4 + 0x34) != 0) {
                      aiStack_4168[2] = 4;
                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);
                    }
                    if (*(int *)(iVar4 + 0x40) != 0) {
                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);
                    }
                  }
                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);
                  (**(code **)(puVar38 + 0x2b9a30))
                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);
                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);
                  (**(code **)(puVar38 + 0x2b9a30))
                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);
                  goto LAB_000f1940;
                }
                iVar7 = iVar7 + 1;
                iVar6 = iVar6 + piVar22[0xb0] * 4;
              } while (iVar4 != iVar7);
            }
            iVar5 = iVar5 + 1;
            pcVar40 = *(code **)(puVar38 + 0x2b9c50);
            if (piVar22[7] <= iVar5) break;
          }
        }
LAB_000f1940:
        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);
        if (iVar4 == 0) {
          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)
          ;
          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);
          if (iVar4 != 0) {
            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);
            dVar41 = (double)iVar4;
            if (iVar4 < 0) {
              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
            }
            (**(code **)(puVar38 + 0x2b9a30))
                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,
                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));
          }
        }
        else {
          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);
          dVar41 = (double)iVar4;
          if (iVar4 < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);
          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);
        }
      }
      if (*piVar22 == 2) {
        dVar41 = (double)piVar22[9];
        if (piVar22[9] < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);
        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;
        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);
        piVar24 = (int *)piVar22[10];
        if (piVar22[9] < 1) goto LAB_000f19dc;
        iVar5 = *(int *)(puVar38 + 0x2b8dd8);
        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;
        iVar6 = *(int *)(puVar38 + 0x2b8dd8);
        iVar7 = *(int *)(puVar38 + 0x2b8dd0);
        iVar4 = 0;
        do {
          piVar16 = piVar24;
          piVar2 = aiStack_4168;
          do {
            piVar20 = piVar2;
            piVar18 = piVar16;
            pdStack_4198 = (double *)auStack_210c;
            piVar16 = piVar18 + 4;
            iVar29 = piVar18[1];
            iVar28 = piVar18[2];
            iVar9 = piVar18[3];
            *piVar20 = *piVar18;
            piVar20[1] = iVar29;
            piVar20[2] = iVar28;
            piVar20[3] = iVar9;
            piVar2 = piVar20 + 4;
          } while (piVar16 != piVar24 + 0x14);
          iVar9 = piVar18[5];
          pcVar40 = *(code **)(puVar38 + 0x2b9d28);
          piVar20[4] = *piVar16;
          piVar20[5] = iVar9;
          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);
          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);
          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);
          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);
          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);
          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);
          if (aiStack_4168[1] == 2) {
            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);
            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);
          }
          pcVar40 = *(code **)(puVar38 + 0x2b9d84);
          if (aiStack_4168[2] != 0) {
            (*pcVar40)(auStack_110c,iVar8,0x1000);
            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);
            pcVar40 = *(code **)(puVar38 + 0x2b9d84);
          }
          piVar24 = piVar24 + 0x16;
          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);
          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);
          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);
          iVar9 = iVar4 + 1;
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),
                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);
          iVar4 = iVar9;
        } while (iVar9 < piVar22[9]);
        iVar4 = piVar22[0xb7];
      }
      else {
LAB_000f19dc:
        iVar4 = piVar22[0xb7];
      }
      pdStack_4198 = (double *)auStack_210c;
      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);
      }
      if (*(double *)(piVar22 + 0xb8) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);
      }
      pcVar40 = *(code **)(puVar38 + 0x2b924c);
      if (*(double *)(piVar22 + 0xba) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);
      if (*(double *)(piVar22 + 100) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);
      }
      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||
          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],
                   *(undefined8 *)(piVar22 + 0x68));
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],
                   *(undefined8 *)(piVar22 + 0x6e));
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],
                   *(undefined8 *)(piVar22 + 0x74));
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],
                   *(undefined8 *)(piVar22 + 0x7a));
      }
      iVar5 = piVar22[0x8e];
      iVar4 = piVar22[0x8f];
      if (iVar5 * iVar4 != 0) {
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar4;
        if (iVar4 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);
      }
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)
      ;
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)
      ;
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)
      ;
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)
      ;
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);
      iVar5 = piVar22[0x8a];
      iVar4 = piVar22[0x8b];
      if (iVar5 == 0) {
        iVar6 = piVar22[0x8c];
        iVar7 = piVar22[0x8d];
        if ((iVar4 != 0) || (iVar6 != 0)) {
          dVar41 = 0.0;
          goto LAB_000f29c0;
        }
        dVar41 = 0.0;
        if (iVar7 != 0) goto LAB_000f29c0;
LAB_000f1db8:
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      else {
        iVar6 = piVar22[0x8c];
        iVar7 = piVar22[0x8d];
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
LAB_000f29c0:
        dVar47 = (double)iVar4;
        if (iVar4 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);
        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))
        {
          dVar41 = (double)piVar22[0x8c];
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);
          goto LAB_000f1db8;
        }
      }
      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);
      iVar4 = piVar22[0x9c];
      if (iVar4 != 0) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),(double)piVar22[0x9e]);
      }
      iVar4 = piVar22[0x9f];
      if (iVar4 != 1) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
      }
      iVar4 = piVar22[0x9d];
      if (iVar4 != 0) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
      }
      iVar4 = piVar22[0x9b];
      if (piVar22[0xcda] == 0) {
        pcVar40 = *(code **)(puVar38 + 0x2b9764);
        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
        if (iVar4 != 0) {
          dVar41 = (double)iVar4;
          if (iVar4 < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
          goto LAB_000f1ed4;
        }
      }
      else {
        pcVar40 = *(code **)(puVar38 + 0x2b9764);
LAB_000f1e64:
        iVar5 = (*pcVar40)(piVar22);
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar5;
        if (iVar5 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47);
LAB_000f1ed4:
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      uVar21 = (*pcVar40)(0xe,piVar22[2]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);
      iVar4 = piVar22[3];
      if (iVar4 != 0) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
      }
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);
      if (piVar22[0x81] != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);
      }
      if (piVar22[0x82] != 0) {
        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();
        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);
        pcVar25 = (char *)piVar22[0x82];
        iVar5 = (int)*pcVar25;
        if (iVar5 != 0) {
          iVar8 = *(int *)(puVar38 + 0x2b8dd0);
          iVar9 = *(int *)(puVar38 + 0x2b8e38);
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          iVar6 = *(int *)(puVar38 + 0x2b8dd0);
          iVar7 = *(int *)(puVar38 + 0x2b8dd0);
          dVar47 = dVar41;
          do {
            iVar28 = 1;
            pcVar37 = pcVar25;
            if (1 < (iVar5 + 1U & 0xff)) {
              do {
                pcVar37 = pcVar37 + 1;
                if ((byte)(*pcVar37 + 1U) < 2) break;
              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);
              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;
            }
            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);
            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);
            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);
            (**(code **)(puVar38 + 0x2b9a90))(uVar21);
            if (iVar5 == 0) {
              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);
            }
            else {
              dVar44 = (double)*(int *)(iVar5 + 0x3340);
              if (*(int *)(iVar5 + 0x3340) < 0) {
                dVar44 = dVar44 + dVar47;
              }
              dVar43 = (double)*(int *)(iVar5 + 0x3344);
              if (*(int *)(iVar5 + 0x3344) < 0) {
                dVar43 = dVar43 + dVar41;
              }
              (**(code **)(puVar38 + 0x2b9a30))
                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),
                         dVar43,iVar5 + 0x2340);
              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);
              (**(code **)(puVar38 + 0x2b9180))(iVar5);
              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);
              while (iVar28 != 0) {
                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);
                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);
                if (iVar28 != 0) {
                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);
                }
                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);
              }
              (**(code **)(puVar38 + 0x2b9438))(iVar5);
            }
            iVar5 = (int)pcVar37[1];
            pcVar25 = pcVar37 + 1;
          } while (iVar5 != 0);
        }
        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);
      }
      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);
      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);
        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);
        if (0x50 < uVar36) {
          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);
        }
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);
      }
      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);
      if (puVar13 != (undefined8 *)0x0) {
        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);
        if (0 < aiStack_4168[0]) {
          iVar5 = *(int *)(puVar38 + 0x2b8dd0);
          iVar4 = 0;
          puVar39 = puVar13;
          do {
            iVar4 = iVar4 + 1;
            (**(code **)(puVar38 + 0x2b9268))
                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);
            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);
            puVar39 = puVar39 + 2;
          } while (iVar4 < aiStack_4168[0]);
        }
        (**(code **)(puVar38 + 0x2b94ac))(puVar13);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);
        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);
      }
      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);
      if (iVar4 != 0) {
        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);
        if (0 < aiStack_4168[0]) {
          iVar5 = *(int *)(puVar38 + 0x2b8dd0);
          iVar6 = 0;
          do {
            iVar6 = iVar6 + 1;
            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);
            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);
          } while (iVar6 < aiStack_4168[0]);
        }
        (**(code **)(puVar38 + 0x2b94ac))(iVar4);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);
        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);
      }
      (**(code **)(puVar38 + 0x2b9378))(piVar22);
      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);
      if (iVar4 != 0) {
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8dd4);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);
        iVar7 = *(int *)(puVar38 + 0x2b8dd4);
        iVar8 = *(int *)(puVar38 + 0x2b8dd0);
        do {
          do {
            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);
          } while (iVar9 == 0);
          (**(code **)(puVar38 + 0x2b9234))(iVar9);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);
          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);
          if (iVar28 == 0) {
            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);
            if (0 < iVar28 + -5) {
              iVar27 = *(int *)(puVar38 + 0x2b8dd0);
              iVar29 = 0;
              do {
                iVar35 = iVar29 + 1;
                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                if (*(char *)(iVar17 + iVar29) == '\x1c') {
                  (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);
                  if (uVar36 < 0xd7) {
                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)
                             )();
                    return uVar36;
                  }
                  iVar35 = iVar29 + 5;
                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);
                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);
                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));
                  if ((uint)(iVar28 - iVar35) <= uVar36) {
                    uVar36 = iVar28 - iVar35;
                  }
                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);
                  if (iVar29 != 0) {
                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);
                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);
                    if (piVar24 != (int *)0x0) {
                      iVar17 = *piVar24;
                      piVar16 = piVar24;
                      while (iVar17 != 0) {
                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);
                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);
                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);
                        iVar17 = piVar16[1];
                        *piVar16 = iVar19;
                        piVar16 = piVar16 + 1;
                      }
                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);
                    }
                    (**(code **)(puVar38 + 0x2b9560))(iVar29);
                  }
                }
                else {
                  uVar36 = 1;
                }
                iVar29 = iVar35 + uVar36;
              } while (iVar29 < iVar28 + -5);
            }
          }
          pcVar40 = *(code **)(puVar38 + 0x2b93f8);
          if (piVar22[0xcd4] != 0) {
            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);
            pcVar40 = *(code **)(puVar38 + 0x2b93f8);
          }
          iVar4 = (*pcVar40)(piVar22);
        } while (iVar4 != 0);
      }
      (**(code **)(puVar38 + 0x2b9180))(piVar22);
      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8e38);
        do {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);
          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);
          if (iVar4 != 0) {
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);
          }
          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);
        } while (iVar4 != 0);
      }
      (**(code **)(puVar38 + 0x2b99e8))(piVar22);
      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8e38);
        do {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);
          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);
          if (iVar4 != 0) {
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);
          }
          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);
        } while (iVar4 != 0);
      }
      (**(code **)(puVar38 + 0x2b9d50))();
      iVar4 = (**(code **)(puVar38 + 0x2b970c))();
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8e38);
        do {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);
          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);
          if (iVar4 != 0) {
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);
          }
          iVar4 = (**(code **)(puVar38 + 0x2b970c))();
        } while (iVar4 != 0);
      }
      puVar33 = auStack_310d + 1;
      iVar4 = *(int *)(puVar38 + 0x2b8dd8);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);
      (**(code **)(puVar38 + 0x2b9588))
                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)
      ;
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);
      (**(code **)(puVar38 + 0x2b9588))
                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),
                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,
                 0x1000,puVar33);
      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);
      if (1 < uVar36) {
        auStack_310d[uVar36] = 0;
      }
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);
      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {
        dVar41 = (double)piVar22[6];
        if (piVar22[6] < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)piVar22[7];
        if (piVar22[7] < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        uVar45 = (**(code **)(puVar38 + 0x2b8e40))
                           ((dVar41 * dVar47) / dVar46 +
                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));
        (**(code **)(puVar38 + 0x2b9588))
                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);
      }
      iVar5 = *(int *)(puVar38 + 0x2b8dd4);
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),
                 (int)uVar42);
      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));
      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);
      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);
      iVar4 = *(int *)(puVar38 + 0x2b8dcc);
      if (dVar41 < *(double *)(iVar4 + 0x1410)) {
        uVar36 = (uint)dVar41;
      }
      else {
        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);
      if (dVar41 < *(double *)(iVar4 + 0x1410)) {
        uVar14 = (uint)dVar41;
      }
      else {
        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);
      if (dVar46 < *(double *)(iVar4 + 0x1410)) {
        uVar15 = (uint)dVar46;
      }
      else {
        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);
      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);
      pcVar40 = *(code **)(puVar38 + 0x2b9978);
    }
  }
  else {
    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);
    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);
    if (iVar6 == 0) {
      pdStack_4198 = (double *)0x0;
    }
    else {
      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);
    }
    if (piVar22[0xcdb] != -0x54535255) {
      uVar21 = 0x90;
      pcVar40 = *(code **)(puVar38 + 0x2b9af4);
      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;
LAB_000f38e8:
      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,
                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);
      return uVar36;
    }
    pcVar40 = *(code **)(puVar38 + 0x2b99f8);
    if (piVar22[0xcd4] != 0) {
      (**(code **)(puVar38 + 0x2b96cc))
                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,
                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,
                 piVar22 + 0xd0);
      pcVar40 = *(code **)(puVar38 + 0x2b99f8);
    }
    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);
    if (puVar12 == (undefined *)0x0) {
      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();
      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();
      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);
      (**(code **)(puVar38 + 0x2b940c))
                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,
                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,
                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)
      ;
      (**(code **)(puVar38 + 0x2b9560))(uVar26);
      (**(code **)(puVar38 + 0x2b979c))(uVar21);
      (**(code **)(puVar38 + 0x2b923c))(uVar21);
      (**(code **)(puVar38 + 0x2b9dd8))();
      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);
      return uVar36;
    }
    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);
    puVar13 = (undefined8 *)(puVar12 + 0x10);
    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);
    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);
    do {
      while (iVar5 != 5) {
        puVar13[1] = uVar42;
        puVar13 = puVar13 + 0xf;
        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;
      }
      *puVar13 = uVar45;
      puVar13 = puVar13 + 0xf;
    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);
LAB_000efcf0:
    if (0 < piVar22[7]) {
      iVar7 = 0;
      iVar6 = piVar22[6];
      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);
      pcVar40 = *(code **)(puVar38 + 0x2b9c50);
      do {
        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);
        if (iVar8 == 0) break;
        iVar6 = piVar22[6];
        iVar9 = 0;
        if (0 < iVar6) {
          iVar29 = piVar22[0xb0];
          piVar24 = (int *)piVar22[0xb4];
          iVar28 = piVar24[0x13];
          do {
            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&
                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {
              iVar9 = iVar9 + 1;
              iVar8 = iVar27;
              if (iVar6 == iVar9) {
                iVar8 = piVar22[7];
                goto LAB_000efe04;
              }
            }
            if (0 < iVar29) {
              pfVar23 = (float *)(iVar27 + iVar29 * -4);
              piVar16 = piVar24;
LAB_000efd9c:
              do {
                iVar8 = *piVar16;
                if (piVar24[iVar8 * 3 + 1] != 0) {
                  dVar46 = (double)*pfVar23;
                  if (iVar5 == 5) {
                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {
                      piVar16 = piVar16 + 3;
                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;
                      pfVar23 = pfVar23 + 1;
                      if (piVar24 + iVar29 * 3 == piVar16) break;
                      goto LAB_000efd9c;
                    }
                  }
                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {
                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;
                  }
                }
                piVar16 = piVar16 + 3;
                pfVar23 = pfVar23 + 1;
              } while (piVar24 + iVar29 * 3 != piVar16);
            }
            iVar9 = iVar9 + 1;
            iVar8 = iVar27;
          } while (iVar6 != iVar9);
        }
        iVar8 = piVar22[7];
LAB_000efe04:
        iVar7 = iVar7 + 1;
        pcVar40 = *(code **)(puVar38 + 0x2b9c50);
      } while (iVar7 < iVar8);
    }
    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);
    if (uVar36 < 0x22) {
                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar36 = (*(code *)(puVar38 +
                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))
                         ();
      return uVar36;
    }
    if (piVar22[0xb0] < 1) {
      iVar4 = piVar22[0xaf];
    }
    else {
      iVar4 = 0;
      iVar6 = *(int *)(puVar38 + 0x2b8dd0);
      do {
        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);
        iVar4 = iVar4 + 1;
      } while (iVar4 < piVar22[0xb0]);
      iVar4 = piVar22[0xaf];
    }
    if (iVar4 != 0) {
      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12
                  );
    }
    pcVar40 = *(code **)(puVar38 + 0x2b94ac);
  }
  (*pcVar40)(puVar12);
  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);
  if (iStack_10c == *piVar10) {
    return (uint)(iVar4 == 0);
  }
  (**(code **)(puVar38 + 0x2b9550))();
LAB_000f38b4:
  uVar36 = (**(code **)(puVar38 + 0x2b9af4))
                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,
                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);
  return uVar36;
}


lui gp,0x2c
addiu gp,gp,0x10b8
addu gp,gp,t9
addiu sp,sp,-0xc0
lw v0,-0x7fcc(gp)
sdc1 f22,0xb0(sp)
sw s6,0x98(sp)
addiu v0,v0,-0x60f0
sw s3,0x8c(sp)
or s3,a0,zero
lw s6,-0x7680(gp)
ldc1 f22,0xd0(sp)
sw s2,0x88(sp)
addiu s2,sp,0x38
sw s0,0x80(sp)
sw s1,0x84(sp)
or s1,a1,zero
sw gp,0x30(sp)
addiu a1,v0,0x40
sw ra,0xa4(sp)
or v1,s2,zero
sw s8,0xa0(sp)
sw s7,0x9c(sp)
sw s5,0x94(sp)
sw s4,0x90(sp)
lw a0,0x0(s6)
lw s0,0xd8(sp)
sdc1 f24,0xb8(sp)
sw a0,0x7c(sp)
sdc1 f20,0xa8(sp)
lw t1,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
sw t1,-0x10(v1)
lw t0,-0xc(v0)
lw a3,-0x8(v0)
lw a0,-0x4(v0)
sw t0,-0xc(v1)
sw a3,-0x8(v1)
bne v0,a1,0x000ef870
_sw a0,-0x4(v1)
lw a1,-0x7fcc(gp)
or a0,s3,zero
lw t9,-0x736c(gp)
sll s1,s1,0x7
li s5,0x8
addiu a1,a1,-0x6ef0
jalr t9
_addu s0,s0,s1
lw gp,0x30(sp)
lw t9,-0x6f84(gp)
jalr t9
_or s7,v0,zero
lw gp,0x30(sp)
or s4,v0,zero
lw t9,-0x6f84(gp)
jalr t9
_ldc1 f20,0x48(s0)
or a2,s4,zero
ldc1 f0,0x50(s0)
or a0,s3,zero
lw gp,0x30(sp)
sdc1 f20,0x10(sp)
sw v0,0x18(sp)
lw a1,-0x7fcc(gp)
lw t9,-0x736c(gp)
addiu a1,a1,-0x6ee4
jalr t9
_sdc1 f0,0x20(sp)
lw gp,0x30(sp)
lw t9,-0x6f84(gp)
jalr t9
_addu s7,s7,v0
lw gp,0x30(sp)
or s1,v0,zero
lw t9,-0x6f84(gp)
jalr t9
_ldc1 f20,0x58(s0)
or a2,s1,zero
ldc1 f0,0x60(s0)
or a0,s3,zero
lw gp,0x30(sp)
sdc1 f20,0x10(sp)
sw v0,0x18(sp)
lw a1,-0x7fcc(gp)
lw t9,-0x736c(gp)
addiu a1,a1,-0x6ec8
jalr t9
_sdc1 f0,0x20(sp)
lw gp,0x30(sp)
lw t9,-0x6f84(gp)
jalr t9
_addu s7,s7,v0
or a0,s3,zero
ldc1 f0,0x68(s0)
or a2,v0,zero
lw gp,0x30(sp)
lw a1,-0x7fcc(gp)
lw t9,-0x736c(gp)
addiu a1,a1,-0x6e98
jalr t9
_sdc1 f0,0x10(sp)
lw gp,0x30(sp)
lw t9,-0x6f84(gp)
jalr t9
_addu s7,s7,v0
or a0,s3,zero
ldc1 f0,0x70(s0)
or a2,v0,zero
lw gp,0x30(sp)
lw a1,-0x7fcc(gp)
lw t9,-0x736c(gp)
addiu a1,a1,-0x6e7c
jalr t9
_sdc1 f0,0x10(sp)
lw gp,0x30(sp)
lw t9,-0x6f84(gp)
jalr t9
_addu s7,s7,v0
ldc1 f20,0x78(s0)
or s1,v0,zero
lw gp,0x30(sp)
lw t9,-0x6f84(gp)
jalr t9
_mul.D f20,f22,f20
or a2,s1,zero
ldc1 f0,0x78(s0)
or a0,s3,zero
lw gp,0x30(sp)
or s1,zero,zero
sw v0,0x18(sp)
lw a1,-0x7fcc(gp)
lw t9,-0x736c(gp)
addiu a1,a1,-0x6e58
sdc1 f0,0x20(sp)
jalr t9
_sdc1 f20,0x10(sp)
lw gp,0x30(sp)
addu s7,s7,v0
lw v0,-0x7fd0(gp)
lw s4,-0x7fcc(gp)
ldc1 f24,0x1438(v0)
addiu s4,s4,-0x6e30
lw t9,-0x6f84(gp)
addiu s2,s2,0x8
jalr t9
_addiu s0,s0,0x8
mov.D f12,f22
ldc1 f14,-0x8(s2)
or s8,v0,zero
lw gp,0x30(sp)
lw t9,-0x7194(gp)
jalr t9
_ldc1 f20,-0x8(s0)
lw gp,0x30(sp)
lw t9,-0x6f84(gp)
jalr t9
_div.D f20,f20,f0
or a1,s4,zero
ldc1 f0,-0x8(s0)
or a0,s3,zero
lw gp,0x30(sp)
sw v0,0x20(sp)
sw s8,0x10(sp)
lw t9,-0x736c(gp)
sdc1 f0,0x28(sp)
mtc1 s1,f0
addiu s1,s1,0x1
sdc1 f20,0x18(sp)
cvt.d.W f0,f0
add.D f0,f0,f24
mfc1 a3,f0
jalr t9
_mfhc1 a2,f0
lw gp,0x30(sp)
bne s1,s5,0x000efa34
_addu s7,s7,v0
lw a0,0x7c(sp)
or v0,s7,zero
lw v1,0x0(s6)
bne a0,v1,0x000efb08
_lw ra,0xa4(sp)
lw s8,0xa0(sp)
lw s7,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
ldc1 f24,0xb8(sp)
ldc1 f22,0xb0(sp)
ldc1 f20,0xa8(sp)
jr ra
_addiu sp,sp,0xc0
lw t9,-0x784c(gp)
jalr t9
_nop
(translation_unit "uint FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)\n\n{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}\n\n" (function_definition "uint FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)\n\n{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}" type_identifier (function_declarator "FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "double param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "float *pfVar23;" primitive_type (pointer_declarator "*pfVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "double *pdVar30;" primitive_type (pointer_declarator "*pdVar30" * identifier) ;) (declaration "double *pdVar31;" primitive_type (pointer_declarator "*pdVar31" * identifier) ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined1 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "char *pcVar37;" primitive_type (pointer_declarator "*pcVar37" * identifier) ;) (declaration "undefined *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "undefined8 *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "undefined8 uVar42;" type_identifier identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "undefined8 uVar45;" type_identifier identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "ulonglong uVar48;" type_identifier identifier ;) (declaration "double *pdStack_4198;" primitive_type (pointer_declarator "*pdStack_4198" * identifier) ;) (declaration "int iStack_4190;" primitive_type identifier ;) (declaration "int iStack_418c;" primitive_type identifier ;) (declaration "int iStack_4180;" primitive_type identifier ;) (declaration "undefined4 uStack_416c;" type_identifier identifier ;) (declaration "int aiStack_4168 [4];" primitive_type (array_declarator "aiStack_4168 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_4158;" type_identifier identifier ;) (declaration "int iStack_4150;" primitive_type identifier ;) (declaration "double dStack_4140;" primitive_type identifier ;) (declaration "double dStack_4138;" primitive_type identifier ;) (declaration "double dStack_4130;" primitive_type identifier ;) (declaration "double dStack_4128;" primitive_type identifier ;) (declaration "double dStack_4120;" primitive_type identifier ;) (declaration "double dStack_4118;" primitive_type identifier ;) (declaration "undefined1 auStack_410c [4095];" type_identifier (array_declarator "auStack_410c [4095]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_310d [4097];" type_identifier (array_declarator "auStack_310d [4097]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_210c [4096];" type_identifier (array_declarator "auStack_210c [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_110c [4096];" type_identifier (array_declarator "auStack_110c [4096]" identifier [ number_literal ]) ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "double *pdStack_108;" primitive_type (pointer_declarator "*pdStack_108" * identifier) ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "undefined8 *puStack_100;" type_identifier (pointer_declarator "*puStack_100" * identifier) ;) (declaration "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "undefined4 uStack_f4;" type_identifier identifier ;) (declaration "undefined *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "double dStack_e0;" primitive_type identifier ;) (declaration "double dStack_d8;" primitive_type identifier ;) (declaration "double dStack_d0;" primitive_type identifier ;) (declaration "double local_b0;" primitive_type identifier ;) (declaration "double local_a8;" primitive_type identifier ;) (declaration "double local_a0;" primitive_type identifier ;) (declaration "double local_98;" primitive_type identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined4 local_80 [15];" type_identifier (array_declarator "local_80 [15]" identifier [ number_literal ]) ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar12 = PTR___stack_chk_guard_003a9230" 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 "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);" (assignment_expression "puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" identifier = (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60f0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60f0" identifier + number_literal) )))) ;) (expression_statement "puVar13 = &local_88;" (assignment_expression "puVar13 = &local_88" identifier = (pointer_expression "&local_88" & identifier)) ;) (do_statement "do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));" do (compound_statement "{\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  }" { (expression_statement "puVar3 = puVar11 + 4;" (assignment_expression "puVar3 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)puVar13 = *puVar11;" (assignment_expression "*(undefined4 *)puVar13 = *puVar11" (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "uVar26 = puVar11[2];" (assignment_expression "uVar26 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar11[3];" (assignment_expression "uVar21 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar13 + 4) = puVar11[1];" (assignment_expression "*(undefined4 *)((int)puVar13 + 4) = puVar11[1]" (pointer_expression "*(undefined4 *)((int)puVar13 + 4)" * (cast_expression "(undefined4 *)((int)puVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + 4)" ( (binary_expression "(int)puVar13 + 4" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + 1) = uVar26;" (assignment_expression "*(undefined4 *)(puVar13 + 1) = uVar26" (pointer_expression "*(undefined4 *)(puVar13 + 1)" * (cast_expression "(undefined4 *)(puVar13 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 1)" ( (binary_expression "puVar13 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar13 + 0xc) = uVar21;" (assignment_expression "*(undefined4 *)((int)puVar13 + 0xc) = uVar21" (pointer_expression "*(undefined4 *)((int)puVar13 + 0xc)" * (cast_expression "(undefined4 *)((int)puVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + 0xc)" ( (binary_expression "(int)puVar13 + 0xc" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puVar3;" (assignment_expression "puVar11 = puVar3" identifier = identifier) ;) (expression_statement "puVar13 = puVar13 + 2;" (assignment_expression "puVar13 = puVar13 + 2" identifier = (binary_expression "puVar13 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0))" ( (binary_expression "puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" identifier != (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60b0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60b0" identifier + number_literal) )))) )) ;) (expression_statement "pdVar30 = (double *)(param_6 + param_2 * 0x80);" (assignment_expression "pdVar30 = (double *)(param_6 + param_2 * 0x80)" identifier = (cast_expression "(double *)(param_6 + param_2 * 0x80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + param_2 * 0x80)" ( (binary_expression "param_6 + param_2 * 0x80" identifier + (binary_expression "param_2 * 0x80" identifier * number_literal)) )))) ;) (expression_statement "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);" (assignment_expression "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ef0" identifier + number_literal) )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar46 = pdVar30[9];" (assignment_expression "dVar46 = pdVar30[9]" identifier = (subscript_expression "pdVar30[9]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar30[10];" (assignment_expression "local_a0 = pdVar30[10]" identifier = (subscript_expression "pdVar30[10]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a8._4_4_)" identifier (argument_list "(uVar26,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" identifier = identifier) ;) (expression_statement "iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);" (assignment_expression "iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ee4" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar46 = pdVar30[0xb];" (assignment_expression "dVar46 = pdVar30[0xb]" identifier = (subscript_expression "pdVar30[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar30[0xc];" (assignment_expression "local_a0 = pdVar30[0xc]" identifier = (subscript_expression "pdVar30[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a8._4_4_)" identifier (argument_list "(uVar26,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);" (assignment_expression "iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ec8" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_b0 = pdVar30[0xd];" (assignment_expression "local_b0 = pdVar30[0xd]" identifier = (subscript_expression "pdVar30[0xd]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);" (assignment_expression "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e98" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_b0 = pdVar30[0xe];" (assignment_expression "local_b0 = pdVar30[0xe]" identifier = (subscript_expression "pdVar30[0xe]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);" (assignment_expression "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e7c" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar46 = param_5 * pdVar30[0xf];" (assignment_expression "dVar46 = param_5 * pdVar30[0xf]" identifier = (binary_expression "param_5 * pdVar30[0xf]" identifier * (subscript_expression "pdVar30[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar30[0xf];" (assignment_expression "local_a0 = pdVar30[0xf]" identifier = (subscript_expression "pdVar30[0xf]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a8._4_4_)" identifier (argument_list "(uVar26,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);" (assignment_expression "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e58" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;" (assignment_expression "uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9" identifier = (binary_expression "iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9" (binary_expression "iVar4 + iVar5 + iVar6 + iVar7 + iVar8" (binary_expression "iVar4 + iVar5 + iVar6 + iVar7" (binary_expression "iVar4 + iVar5 + iVar6" (binary_expression "iVar4 + iVar5" identifier + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;" (assignment_expression "puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30" identifier = (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e30" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = &local_88;" (assignment_expression "puVar13 = &local_88" identifier = (pointer_expression "&local_88" & identifier)) ;) (do_statement "do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);" do (compound_statement "{\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  }" { (expression_statement "puVar39 = puVar13 + 1;" (assignment_expression "puVar39 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "pdVar31 = pdVar30 + 1;" (assignment_expression "pdVar31 = pdVar30 + 1" identifier = (binary_expression "pdVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar47 = *pdVar30;" (assignment_expression "dVar47 = *pdVar30" identifier = (pointer_expression "*pdVar30" * identifier)) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);" (assignment_expression "dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" identifier = (cast_expression "(double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" (parenthesized_expression "(*(code *)PTR_pow_003a971c)" ( (pointer_expression "*(code *)PTR_pow_003a971c" * (cast_expression "(code *)PTR_pow_003a971c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,*puVar13)" ( identifier , (pointer_expression "*puVar13" * identifier) ))))) ;) (expression_statement "dVar47 = dVar47 / dVar41;" (assignment_expression "dVar47 = dVar47 / dVar41" identifier = (binary_expression "dVar47 / dVar41" identifier / identifier)) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_98 = *pdVar30;" (assignment_expression "local_98 = *pdVar30" identifier = (pointer_expression "*pdVar30" * identifier)) ;) (expression_statement "local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);" (assignment_expression "local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a0._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a0._4_4_)" identifier (argument_list "(uVar26,local_a0._4_4_)" ( identifier , (field_expression "local_a0._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);" (assignment_expression "local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar21,local_b0._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar21,local_b0._4_4_)" identifier (argument_list "(uVar21,local_b0._4_4_)" ( identifier , (field_expression "local_b0._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "iVar5 = iVar4 + 1;" (assignment_expression "iVar5 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "dVar41 = (double)iVar4 + dVar46;" (assignment_expression "dVar41 = (double)iVar4 + dVar46" identifier = (binary_expression "(double)iVar4 + dVar46" (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar32 = puVar34;" (assignment_expression "puVar32 = puVar34" identifier = identifier) ;) (expression_statement "local_a8 = dVar47;" (assignment_expression "local_a8 = dVar47" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);" (assignment_expression "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(param_1)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar36 = uVar36 + iVar4;" (assignment_expression "uVar36 = uVar36 + iVar4" identifier = (binary_expression "uVar36 + iVar4" identifier + identifier)) ;) (expression_statement "pdVar30 = pdVar31;" (assignment_expression "pdVar30 = pdVar31" identifier = identifier) ;) (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar39;" (assignment_expression "puVar13 = puVar39" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 != 8)" ( (binary_expression "iVar5 != 8" identifier != number_literal) )) ;) (if_statement "if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }" if (parenthesized_expression "(local_44 == *(int **)puVar12)" ( (binary_expression "local_44 == *(int **)puVar12" identifier == (pointer_expression "*(int **)puVar12" * (cast_expression "(int **)puVar12" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar36;\n  }" { (return_statement "return uVar36;" return identifier ;) })) (expression_statement "pcVar40 = IdentifyImage;" (assignment_expression "pcVar40 = IdentifyImage" identifier = identifier) ;) (expression_statement "piVar22 = local_44;" (assignment_expression "piVar22 = local_44" identifier = identifier) ;) (expression_statement "puVar38 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar38 = 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 "uVar26 = SUB84(dVar41,0);" (assignment_expression "uVar26 = SUB84(dVar41,0)" identifier = (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal )))) ;) (expression_statement "piVar10 = *(int **)(puVar38 + 0x2b971c);" (assignment_expression "piVar10 = *(int **)(puVar38 + 0x2b971c)" identifier = (pointer_expression "*(int **)(puVar38 + 0x2b971c)" * (cast_expression "(int **)(puVar38 + 0x2b971c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b971c)" ( (binary_expression "puVar38 + 0x2b971c" identifier + number_literal) ))))) ;) (expression_statement "puStack_f0 = puVar12;" (assignment_expression "puStack_f0 = puVar12" identifier = identifier) ;) (expression_statement "uStack_f4 = 8;" (assignment_expression "uStack_f4 = 8" identifier = number_literal) ;) (expression_statement "iStack_10c = *piVar10;" (assignment_expression "iStack_10c = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "pdStack_108 = pdVar31;" (assignment_expression "pdStack_108 = pdVar31" identifier = identifier) ;) (expression_statement "iStack_104 = iVar5;" (assignment_expression "iStack_104 = iVar5" identifier = identifier) ;) (expression_statement "puStack_100 = puVar39;" (assignment_expression "puStack_100 = puVar39" identifier = identifier) ;) (expression_statement "uStack_fc = param_1;" (assignment_expression "uStack_fc = param_1" identifier = identifier) ;) (expression_statement "puStack_f8 = puVar34;" (assignment_expression "puStack_f8 = puVar34" identifier = identifier) ;) (expression_statement "uStack_ec = uVar36;" (assignment_expression "uStack_ec = uVar36" identifier = identifier) ;) (expression_statement "uStack_e8 = uVar21;" (assignment_expression "uStack_e8 = uVar21" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar40;" (assignment_expression "pcStack_e4 = pcVar40" identifier = identifier) ;) (expression_statement "dStack_e0 = dVar47;" (assignment_expression "dStack_e0 = dVar47" identifier = identifier) ;) (expression_statement "dStack_d8 = param_5;" (assignment_expression "dStack_d8 = param_5" identifier = identifier) ;) (expression_statement "dStack_d0 = dVar46;" (assignment_expression "dStack_d0 = dVar46" identifier = identifier) ;) (if_statement "if (piVar22 == (int *)0x0) goto LAB_000f38b4;" if (parenthesized_expression "(piVar22 == (int *)0x0)" ( (binary_expression "piVar22 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f38b4;" goto statement_identifier ;)) (if_statement "if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" if (parenthesized_expression "(piVar22[0xcdb] != -0x54535255)" ( (binary_expression "piVar22[0xcdb] != -0x54535255" (subscript_expression "piVar22[0xcdb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" { (expression_statement "uVar21 = 0x213;" (assignment_expression "uVar21 = 0x213" identifier = number_literal) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9af4);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9af4)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" * (cast_expression "(code **)(puVar38 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9af4)" ( (binary_expression "puVar38 + 0x2b9af4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" identifier = (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000f38e8;" goto statement_identifier ;) })) (if_statement "if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" if (parenthesized_expression "(piVar22[0xcd4] == 0)" ( (binary_expression "piVar22[0xcd4] == 0" (subscript_expression "piVar22[0xcd4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }" { (expression_statement "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);" (assignment_expression "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0)" identifier = (pointer_expression "*(undefined4 **)(puVar38 + 0x2b93d0)" * (cast_expression "(undefined4 **)(puVar38 + 0x2b93d0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93d0)" ( (binary_expression "puVar38 + 0x2b93d0" identifier + number_literal) ))))) ;) (if_statement "if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }" if (parenthesized_expression "(puVar32 == (undefined *)0x0)" ( (binary_expression "puVar32 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }" { (labeled_statement "LAB_000efed0:\n      puVar32 = (undefined *)*puVar11;" statement_identifier : (expression_statement "puVar32 = (undefined *)*puVar11;" (assignment_expression "puVar32 = (undefined *)*puVar11" identifier = (cast_expression "(undefined *)*puVar11" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;)) })) }) (else_clause "else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" else (compound_statement "{\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" { (expression_statement "(**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);" (call_expression "(**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96cc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b96cc)" * (pointer_expression "*(code **)(puVar38 + 0x2b96cc)" * (cast_expression "(code **)(puVar38 + 0x2b96cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b96cc)" ( (binary_expression "puVar38 + 0x2b96cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0)" ( number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "piVar22 + 0xd0" identifier + number_literal) ))) ;) (if_statement "if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" if (parenthesized_expression "(puVar32 == (undefined *)0x0)" ( (binary_expression "puVar32 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" { (expression_statement "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);" (assignment_expression "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0)" identifier = (pointer_expression "*(undefined4 **)(puVar38 + 0x2b93d0)" * (cast_expression "(undefined4 **)(puVar38 + 0x2b93d0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93d0)" ( (binary_expression "puVar38 + 0x2b93d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000efed0;" goto statement_identifier ;) })) }))) (expression_statement "uVar36 = piVar22[1];" (assignment_expression "uVar36 = piVar22[1]" identifier = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }" { (expression_statement "piVar16 = piVar22 + 0xbc;" (assignment_expression "piVar16 = piVar22 + 0xbc" identifier = (binary_expression "piVar22 + 0xbc" identifier + number_literal)) ;) (expression_statement "auStack_310d[1] = 0;" (assignment_expression "auStack_310d[1] = 0" (subscript_expression "auStack_310d[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar24 = piVar22 + 0xd0;" (assignment_expression "piVar24 = piVar22 + 0xd0" identifier = (binary_expression "piVar22 + 0xd0" identifier + number_literal)) ;) (expression_statement "dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);" (assignment_expression "dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b97e4))(piVar16)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b97e4))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97e4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97e4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97e4)" * (cast_expression "(code **)(puVar38 + 0x2b97e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97e4)" ( (binary_expression "puVar38 + 0x2b97e4" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier ))))) ;) (expression_statement "uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);" (assignment_expression "uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9474))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9474))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9474)" * (pointer_expression "*(code **)(puVar38 + 0x2b9474)" * (cast_expression "(code **)(puVar38 + 0x2b9474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9474)" ( (binary_expression "puVar38 + 0x2b9474" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9b54))(piVar16);" (call_expression "(**(code **)(puVar38 + 0x2b9b54))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b54))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b54)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b54)" * (cast_expression "(code **)(puVar38 + 0x2b9b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b54)" ( (binary_expression "puVar38 + 0x2b9b54" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier ))) ;) (expression_statement "puVar12 = puVar32;" (assignment_expression "puVar12 = puVar32" identifier = identifier) ;) (if_statement "if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" if (parenthesized_expression "((int)((ulonglong)dVar41 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)dVar41 >> 0x20) == 0" (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" { (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9198);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9198)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9198)" * (cast_expression "(code **)(puVar38 + 0x2b9198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9198)" ( (binary_expression "puVar38 + 0x2b9198" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }" if (parenthesized_expression "(*(char *)(piVar22 + 0x4d0) != '\0')" ( (binary_expression "*(char *)(piVar22 + 0x4d0) != '\0'" (pointer_expression "*(char *)(piVar22 + 0x4d0)" * (cast_expression "(char *)(piVar22 + 0x4d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x4d0)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" * (cast_expression "(code **)(puVar38 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b95fc)" ( (binary_expression "puVar38 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(piVar22 + 0x4d0,piVar24)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "piVar22 + 0x4d0" identifier + number_literal) ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9198);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9198)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9198)" * (cast_expression "(code **)(puVar38 + 0x2b9198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9198)" ( (binary_expression "puVar38 + 0x2b9198" identifier + number_literal) ))))) ;) })) (expression_statement "iVar4 = (*pcVar40)(piVar22);" (assignment_expression "iVar4 = (*pcVar40)(piVar22)" identifier = (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22)" ( identifier )))) ;) (expression_statement "iVar5 = piVar22[0x9b];" (assignment_expression "iVar5 = piVar22[0x9b]" identifier = (subscript_expression "piVar22[0x9b]" identifier [ number_literal ])) ;) (if_statement "if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" if (parenthesized_expression "(((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0))" ( (binary_expression "((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)" (parenthesized_expression "((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b995c))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b995c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b995c)" * (pointer_expression "*(code **)(puVar38 + 0x2b995c)" * (cast_expression "(code **)(puVar38 + 0x2b995c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b995c)" ( (binary_expression "puVar38 + 0x2b995c" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }" { (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,piVar24)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" else (compound_statement "{\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" { (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , (binary_expression "piVar22 + 0x8d0" identifier + number_literal) ))) ;) (expression_statement "iVar7 = piVar22[0xcd0];" (assignment_expression "iVar7 = piVar22[0xcd0]" identifier = (subscript_expression "piVar22[0xcd0]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar22[0xcd1];" (assignment_expression "iVar5 = piVar22[0xcd1]" identifier = (subscript_expression "piVar22[0xcd1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (if_statement "if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" if (parenthesized_expression "((iVar7 == 0) && (iVar5 == 0))" ( (binary_expression "(iVar7 == 0) && (iVar5 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }" { (labeled_statement "LAB_000f0044:\n        iVar5 = piVar22[7];" statement_identifier : (expression_statement "iVar5 = piVar22[7];" (assignment_expression "iVar5 = piVar22[7]" identifier = (subscript_expression "piVar22[7]" identifier [ number_literal ])) ;)) }) (else_clause "else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" else (if_statement "if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" if (parenthesized_expression "((iVar7 != iVar6) || (piVar22[7] != iVar5))" ( (binary_expression "(iVar7 != iVar6) || (piVar22[7] != iVar5)" (parenthesized_expression "(iVar7 != iVar6)" ( (binary_expression "iVar7 != iVar6" identifier != identifier) )) || (parenthesized_expression "(piVar22[7] != iVar5)" ( (binary_expression "piVar22[7] != iVar5" (subscript_expression "piVar22[7]" identifier [ number_literal ]) != identifier) ))) )) (compound_statement "{\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" { (expression_statement "dVar41 = (double)iVar7;" (assignment_expression "dVar41 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a94" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000f0044;" goto statement_identifier ;) })))) (expression_statement "dVar41 = (double)iVar6;" (assignment_expression "dVar41 = (double)iVar6" identifier = (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a84" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "iVar6 = piVar22[0x8a];" (assignment_expression "iVar6 = piVar22[0x8a]" identifier = (subscript_expression "piVar22[0x8a]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar22[0x8b];" (assignment_expression "iVar5 = piVar22[0x8b]" identifier = (subscript_expression "piVar22[0x8b]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }" { (expression_statement "iVar7 = piVar22[0x8c];" (assignment_expression "iVar7 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar22[0x8d];" (assignment_expression "iVar8 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (if_statement "if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" if (parenthesized_expression "((iVar5 != 0) || (iVar7 != 0))" ( (binary_expression "(iVar5 != 0) || (iVar7 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f00d4;" goto statement_identifier ;) })) (if_statement "if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f00d4;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" else (compound_statement "{\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" { (expression_statement "iVar7 = piVar22[0x8c];" (assignment_expression "iVar7 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar22[0x8d];" (assignment_expression "iVar8 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)iVar6;" (assignment_expression "dVar41 = (double)iVar6" identifier = (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (labeled_statement "LAB_000f00d4:\n        dVar47 = (double)iVar5;" statement_identifier : (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a74" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) }))) (expression_statement "dVar41 = (double)piVar22[8];" (assignment_expression "dVar41 = (double)piVar22[8]" identifier = (cast_expression "(double)piVar22[8]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(piVar22[8] < 0)" ( (binary_expression "piVar22[8] < 0" (subscript_expression "piVar22[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a58" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (if_statement "if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" if (parenthesized_expression "(piVar22[0xa8] != 0)" ( (binary_expression "piVar22[0xa8] != 0" (subscript_expression "piVar22[0xa8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,uVar21)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , identifier ))) ;) })) (if_statement "if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" if (parenthesized_expression "(uVar36 != 0)" ( (binary_expression "uVar36 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,uVar36)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,uVar21)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "uVar36 = piVar22[0xa0];" (assignment_expression "uVar36 = piVar22[0xa0]" identifier = (subscript_expression "piVar22[0xa0]" identifier [ number_literal ])) ;) (if_statement "if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" if (parenthesized_expression "(*piVar22 == 1)" ( (binary_expression "*piVar22 == 1" (pointer_expression "*piVar22" * identifier) == number_literal) )) (compound_statement "{\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }" { (if_statement "if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }" if (parenthesized_expression "(uVar36 != 0)" ( (binary_expression "uVar36 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" ( number_literal , identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" else (compound_statement "{\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" { (expression_statement "uVar14 = piVar22[9];" (assignment_expression "uVar14 = piVar22[9]" identifier = (subscript_expression "piVar22[9]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)(int)uVar14;" (assignment_expression "dVar41 = (double)(int)uVar14" identifier = (cast_expression "(double)(int)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)uVar14 < 0)" ( (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" if (parenthesized_expression "(uVar14 < uVar36)" ( (binary_expression "uVar14 < uVar36" identifier < identifier) )) (compound_statement "{\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }" { (expression_statement "dVar47 = (double)(int)uVar36;" (assignment_expression "dVar47 = (double)(int)uVar36" identifier = (cast_expression "(double)(int)uVar36" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "((int)uVar36 < 0)" ( (binary_expression "(int)uVar36 < 0" (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a44" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar47 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar47 >> 0x20)" ( (binary_expression "(ulonglong)dVar47 >> 0x20" (cast_expression "(ulonglong)dVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar47,0)" identifier (argument_list "(dVar47,0)" ( identifier , number_literal ))) , identifier ))) ;) }) (else_clause "else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" else (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) }))) }))) (if_statement "if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0xb6) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0xb6) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xb6)" * (cast_expression "(double *)(piVar22 + 0xb6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb6)" ( (binary_expression "piVar22 + 0xb6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }" { (expression_statement "dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);" (assignment_expression "dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" identifier = (binary_expression "*(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (pointer_expression "*(double *)(piVar22 + 0xb6)" * (cast_expression "(double *)(piVar22 + 0xb6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb6)" ( (binary_expression "piVar22 + 0xb6" identifier + number_literal) )))) + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a34" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , (pointer_expression "*(undefined8 *)(piVar22 + 0xb8)" * (cast_expression "(undefined8 *)(piVar22 + 0xb8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb8)" ( (binary_expression "piVar22 + 0xb8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(piVar22 + 0xba)" * (cast_expression "(undefined8 *)(piVar22 + 0xba)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xba)" ( (binary_expression "piVar22 + 0xba" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }" if (parenthesized_expression "(piVar22[0xaa] != 0 || piVar22[0xab] != 0)" ( (binary_expression "piVar22[0xaa] != 0 || piVar22[0xab] != 0" (binary_expression "piVar22[0xaa] != 0" (subscript_expression "piVar22[0xaa]" identifier [ number_literal ]) != number_literal) || (binary_expression "piVar22[0xab] != 0" (subscript_expression "piVar22[0xab]" identifier [ number_literal ]) != number_literal)) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" ( (subscript_expression "piVar22[0xaa]" identifier [ number_literal ]) , (subscript_expression "piVar22[0xab]" identifier [ number_literal ]) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) })) (expression_statement "uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));" (assignment_expression "uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ea4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ea4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ea4)" * (cast_expression "(code **)(puVar38 + 0x2b9ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ea4)" ( (binary_expression "puVar38 + 0x2b9ea4" identifier + number_literal) ))))) )) (argument_list "(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" ( identifier , (pointer_expression "*(undefined8 *)(iVar5 + 0x7ba0)" * (cast_expression "(undefined8 *)(iVar5 + 0x7ba0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))) )))) ;) (expression_statement "dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);" (assignment_expression "dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" * (cast_expression "(code **)(puVar38 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b5c)" ( (binary_expression "puVar38 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(uVar45)" ( identifier ))))) ;) (expression_statement "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);" (assignment_expression "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" * (cast_expression "(code **)(puVar38 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b5c)" ( (binary_expression "puVar38 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(dVar46)" ( identifier ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" identifier = (binary_expression "(dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar46 - dVar47)" ( (binary_expression "dVar46 - dVar47" identifier - identifier) )) * (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar47 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar47 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar36 = (uint)dVar47;\n      }" { (expression_statement "uVar36 = (uint)dVar47;" (assignment_expression "uVar36 = (uint)dVar47" identifier = (cast_expression "(uint)dVar47" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar47 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar47 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar47 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar14 = (uint)dVar41;\n      }" { (expression_statement "uVar14 = (uint)dVar41;" (assignment_expression "uVar14 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);" (assignment_expression "dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier = (binary_expression "dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier / (pointer_expression "*(double *)(iVar5 + 0x7ba0)" * (cast_expression "(double *)(iVar5 + 0x7ba0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))))) ;) (if_statement "if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar46 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar15 = (uint)dVar46;\n      }" { (expression_statement "uVar15 = (uint)dVar46;" (assignment_expression "uVar15 = (uint)dVar46" identifier = (cast_expression "(uint)dVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar46 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a24" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" ( (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar42" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9978);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9978)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9978)" * (cast_expression "(code **)(puVar38 + 0x2b9978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9978)" ( (binary_expression "puVar38 + 0x2b9978" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" else (compound_statement "{\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9c50))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9c50)" * (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) )) (argument_list "(piVar22,0,0,1,1,uVar26)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9500))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9500)" * (pointer_expression "*(code **)(puVar38 + 0x2b9500)" * (cast_expression "(code **)(puVar38 + 0x2b9500)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9500)" ( (binary_expression "puVar38 + 0x2b9500" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier ))) ;) (if_statement "if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iStack_4190 = 0;" (assignment_expression "iStack_4190 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = (int *)0x0;" (assignment_expression "piVar16 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" else (compound_statement "{\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" { (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9100))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9100)" * (pointer_expression "*(code **)(puVar38 + 0x2b9100)" * (cast_expression "(code **)(puVar38 + 0x2b9100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9100)" ( (binary_expression "puVar38 + 0x2b9100" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);" (assignment_expression "piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" identifier = (cast_expression "(int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93b0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93b0)" * (pointer_expression "*(code **)(puVar38 + 0x2b93b0)" * (cast_expression "(code **)(puVar38 + 0x2b93b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93b0)" ( (binary_expression "puVar38 + 0x2b93b0" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier ))))) ;) (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0;\n          iVar6 = 0;\n        }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" else (compound_statement "{\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" { (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e14))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e14)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e14)" * (cast_expression "(code **)(puVar38 + 0x2b9e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e14)" ( (binary_expression "puVar38 + 0x2b9e14" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);" (assignment_expression "iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9160))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9160)" * (pointer_expression "*(code **)(puVar38 + 0x2b9160)" * (cast_expression "(code **)(puVar38 + 0x2b9160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9160)" ( (binary_expression "puVar38 + 0x2b9160" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) }))) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iStack_4190 = 0;\n        }" { (expression_statement "iStack_4190 = 0;" (assignment_expression "iStack_4190 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" else (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b982c))(iVar8,0,10)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b982c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b982c)" * (pointer_expression "*(code **)(puVar38 + 0x2b982c)" * (cast_expression "(code **)(puVar38 + 0x2b982c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b982c)" ( (binary_expression "puVar38 + 0x2b982c" identifier + number_literal) ))))) )) (argument_list "(iVar8,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);" (assignment_expression "iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92f0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92f0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92f0)" * (cast_expression "(code **)(puVar38 + 0x2b92f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92f0)" ( (binary_expression "puVar38 + 0x2b92f0" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar21,uVar26)" ( identifier , identifier , identifier )))) ;) }))) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69e4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }" if (parenthesized_expression "(*(char *)(piVar22 + 0x4d0) != '\0')" ( (binary_expression "*(char *)(piVar22 + 0x4d0) != '\0'" (pointer_expression "*(char *)(piVar22 + 0x4d0)" * (cast_expression "(char *)(piVar22 + 0x4d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x4d0)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }" { (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" * (cast_expression "(code **)(puVar38 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b95fc)" ( (binary_expression "puVar38 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(piVar22 + 0x4d0,piVar24)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9304))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9304)" * (pointer_expression "*(code **)(puVar38 + 0x2b9304)" * (cast_expression "(code **)(puVar38 + 0x2b9304)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9304)" ( (binary_expression "puVar38 + 0x2b9304" identifier + number_literal) ))))) )) (argument_list "(piVar22 + 0x4d0,4,auStack_110c)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69cc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) })) (expression_statement "piVar24 = piVar22 + 0x8d0;" (assignment_expression "piVar24 = piVar22 + 0x8d0" identifier = (binary_expression "piVar22 + 0x8d0" identifier + number_literal)) ;) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98f8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98f8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98f8)" * (cast_expression "(code **)(puVar38 + 0x2b98f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98f8)" ( (binary_expression "puVar38 + 0x2b98f8" identifier + number_literal) ))))) )) (argument_list "(piVar24,uVar26)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) (else_clause "else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" else (compound_statement "{\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" { (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b933c))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b933c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b933c)" * (pointer_expression "*(code **)(puVar38 + 0x2b933c)" * (cast_expression "(code **)(puVar38 + 0x2b933c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b933c)" ( (binary_expression "puVar38 + 0x2b933c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) (else_clause "else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" else (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b933c))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b933c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b933c)" * (pointer_expression "*(code **)(puVar38 + 0x2b933c)" * (cast_expression "(code **)(puVar38 + 0x2b933c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b933c)" ( (binary_expression "puVar38 + 0x2b933c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) }))) (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9994))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9994))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9994)" * (pointer_expression "*(code **)(puVar38 + 0x2b9994)" * (cast_expression "(code **)(puVar38 + 0x2b9994)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9994)" ( (binary_expression "puVar38 + 0x2b9994" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9994))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9994))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9994)" * (pointer_expression "*(code **)(puVar38 + 0x2b9994)" * (cast_expression "(code **)(puVar38 + 0x2b9994)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9994)" ( (binary_expression "puVar38 + 0x2b9994" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69a0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) }))) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(5,*piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(5,*piVar22)" ( number_literal , (pointer_expression "*piVar22" * identifier) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x698c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x697c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)piVar22[0xa6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0xa6]" identifier [ number_literal ])) , (cast_expression "(double)piVar22[0xa7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0xa7]" identifier [ number_literal ])) ))) ;) (expression_statement "iVar9 = piVar22[0xcd0];" (assignment_expression "iVar9 = piVar22[0xcd0]" identifier = (subscript_expression "piVar22[0xcd0]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar22[0xcd1];" (assignment_expression "iVar8 = piVar22[0xcd1]" identifier = (subscript_expression "piVar22[0xcd1]" identifier [ number_literal ])) ;) (if_statement "if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }" if (parenthesized_expression "(((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8))))" ( (binary_expression "((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))" (parenthesized_expression "((iVar9 != 0) || (iVar8 != 0))" ( (binary_expression "(iVar9 != 0) || (iVar8 != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))" ( (parenthesized_expression "(iVar9 != piVar22[6] || (piVar22[7] != iVar8))" ( (binary_expression "iVar9 != piVar22[6] || (piVar22[7] != iVar8)" (binary_expression "iVar9 != piVar22[6]" identifier != (subscript_expression "piVar22[6]" identifier [ number_literal ])) || (parenthesized_expression "(piVar22[7] != iVar8)" ( (binary_expression "piVar22[7] != iVar8" (subscript_expression "piVar22[7]" identifier [ number_literal ]) != identifier) ))) )) ))) )) (compound_statement "{\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }" { (expression_statement "dVar41 = (double)iVar9;" (assignment_expression "dVar41 = (double)iVar9" identifier = (cast_expression "(double)iVar9" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar8;" (assignment_expression "dVar47 = (double)iVar8" identifier = (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6954" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0x86) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x86) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x86)" * (cast_expression "(double *)(piVar22 + 0x86)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x86)" ( (binary_expression "piVar22 + 0x86" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (if_statement "if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }" if (parenthesized_expression "(*(double *)(piVar22 + 0x88) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x88) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x88)" * (cast_expression "(double *)(piVar22 + 0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x88)" ( (binary_expression "piVar22 + 0x88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6934" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x86]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x87]" identifier [ number_literal ]) , (pointer_expression "*(double *)(piVar22 + 0x88)" * (cast_expression "(double *)(piVar22 + 0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x88)" ( (binary_expression "piVar22 + 0x88" identifier + number_literal) )))) ))) ;) (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = dVar47 / *(double *)(piVar22 + 0x88);" (assignment_expression "dVar47 = dVar47 / *(double *)(piVar22 + 0x88)" identifier = (binary_expression "dVar47 / *(double *)(piVar22 + 0x88)" identifier / (pointer_expression "*(double *)(piVar22 + 0x88)" * (cast_expression "(double *)(piVar22 + 0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x88)" ( (binary_expression "piVar22 + 0x88" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x691c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20)" ( (binary_expression "(ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20" (call_expression "(ulonglong)(dVar41 / *(double *)(piVar22 + 0x86))" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(dVar41 / *(double *)(piVar22 + 0x86))" ( (binary_expression "dVar41 / *(double *)(piVar22 + 0x86)" identifier / (pointer_expression "*(double *)(piVar22 + 0x86)" * (cast_expression "(double *)(piVar22 + 0x86)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x86)" ( (binary_expression "piVar22 + 0x86" identifier + number_literal) ))))) ))) >> number_literal) ))) , (call_expression "SUB84(dVar41 / *(double *)(piVar22 + 0x86),0)" identifier (argument_list "(dVar41 / *(double *)(piVar22 + 0x86),0)" ( (binary_expression "dVar41 / *(double *)(piVar22 + 0x86)" identifier / (pointer_expression "*(double *)(piVar22 + 0x86)" * (cast_expression "(double *)(piVar22 + 0x86)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x86)" ( (binary_expression "piVar22 + 0x86" identifier + number_literal) ))))) , number_literal ))) , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar21 = (*pcVar40)(0x41,piVar22[0x80]);" (assignment_expression "uVar21 = (*pcVar40)(0x41,piVar22[0x80])" identifier = (call_expression "(*pcVar40)(0x41,piVar22[0x80])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x41,piVar22[0x80])" ( number_literal , (subscript_expression "piVar22[0x80]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6904" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,uVar36)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68f4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b938c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b938c)" * (pointer_expression "*(code **)(puVar38 + 0x2b938c)" * (cast_expression "(code **)(puVar38 + 0x2b938c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b938c)" ( (binary_expression "puVar38 + 0x2b938c" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49,iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49,iVar8)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68e0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }" if (parenthesized_expression "(piVar22[0xa8] != iVar8)" ( (binary_expression "piVar22[0xa8] != iVar8" (subscript_expression "piVar22[0xa8]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68d4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x18,piVar22[0x97])" ( number_literal , (subscript_expression "piVar22[0x97]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }" { (expression_statement "iVar8 = piVar22[8];" (assignment_expression "iVar8 = piVar22[8]" identifier = (subscript_expression "piVar22[8]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" if (parenthesized_expression "(iVar8 == iVar5)" ( (binary_expression "iVar8 == iVar5" identifier == identifier) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) }) (else_clause "else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" else (compound_statement "{\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" { (expression_statement "dVar47 = (double)iVar8;" (assignment_expression "dVar47 = (double)iVar8" identifier = (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6898" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar47 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar47 >> 0x20)" ( (binary_expression "(ulonglong)dVar47 >> 0x20" (cast_expression "(ulonglong)dVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar47,0)" identifier (argument_list "(dVar47,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) }))) })) (if_statement "if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x687c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" if (parenthesized_expression "(uVar36 < 0x22)" ( (binary_expression "uVar36 < 0x22" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" { comment comment (expression_statement "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))()" identifier = (call_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))" ( (pointer_expression "*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" * (cast_expression "(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" ( (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c" (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6028" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (if_statement "if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" else (compound_statement "{\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar24 = piVar16;" (assignment_expression "piVar24 = piVar16" identifier = identifier) ;) (do_statement "do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);" do (compound_statement "{\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          }" { (expression_statement "dVar44 = (double)iVar5;" (assignment_expression "dVar44 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar47 = (double)*piVar24;" (assignment_expression "dVar47 = (double)*piVar24" identifier = (cast_expression "(double)*piVar24" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*piVar24" * identifier))) ;) (if_statement "if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }" if (parenthesized_expression "(*piVar24 < 0)" ( (binary_expression "*piVar24 < 0" (pointer_expression "*piVar24" * identifier) < number_literal) )) (compound_statement "{\n              dVar47 = dVar47 + dVar41;\n            }" { (expression_statement "dVar47 = dVar47 + dVar41;" (assignment_expression "dVar47 = dVar47 + dVar41" identifier = (binary_expression "dVar47 + dVar41" identifier + identifier)) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47)" ( identifier , (binary_expression "iVar8 + -0x67ac" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar44 >> 0x20)" ( (binary_expression "(ulonglong)dVar44 >> 0x20" (cast_expression "(ulonglong)dVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar44,0)" identifier (argument_list "(dVar44,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "piVar24 = piVar24 + 0x1e;" (assignment_expression "piVar24 = piVar24 + 0x1e" identifier = (binary_expression "piVar24 + 0x1e" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < piVar22[0xb0])" ( (binary_expression "iVar5 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" { (expression_statement "dVar41 = (double)piVar16[0x78];" (assignment_expression "dVar41 = (double)piVar16[0x78]" identifier = (cast_expression "(double)piVar16[0x78]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar16[0x78]" identifier [ number_literal ]))) ;) (if_statement "if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(piVar16[0x78] < 0)" ( (binary_expression "piVar16[0x78] < 0" (subscript_expression "piVar16[0x78]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x678c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (if_statement "if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" if (parenthesized_expression "((uint)piVar22[8] < 0x11)" ( (binary_expression "(uint)piVar22[8] < 0x11" (cast_expression "(uint)piVar22[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[8]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }" { (expression_statement "dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));" (assignment_expression "dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" identifier = (cast_expression "(double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" ( (binary_expression "*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" (pointer_expression "*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" * (cast_expression "(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1a50" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))) / (cast_expression "(float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0xffff >> (0x10U - piVar22[8] & 0x1f))" ( (binary_expression "0xffff >> (0x10U - piVar22[8] & 0x1f)" number_literal >> (parenthesized_expression "(0x10U - piVar22[8] & 0x1f)" ( (binary_expression "0x10U - piVar22[8] & 0x1f" (binary_expression "0x10U - piVar22[8]" number_literal - (subscript_expression "piVar22[8]" identifier [ number_literal ])) & number_literal) ))) ))))) )))) ;) }) (else_clause "else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" else (compound_statement "{\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" { (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6774" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar44 = (double)piVar22[6];" (assignment_expression "dVar44 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar43 = (double)piVar22[7];" (assignment_expression "dVar43 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x675c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)(dVar44 * dVar43) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(dVar44 * dVar43) >> 0x20)" ( (binary_expression "(ulonglong)(dVar44 * dVar43) >> 0x20" (call_expression "(ulonglong)(dVar44 * dVar43)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(dVar44 * dVar43)" ( (binary_expression "dVar44 * dVar43" identifier * identifier) ))) >> number_literal) ))) , (call_expression "SUB84(dVar44 * dVar43,0)" identifier (argument_list "(dVar44 * dVar43,0)" ( (binary_expression "dVar44 * dVar43" identifier * identifier) , number_literal ))) ))) ;) (if_statement "if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" if (parenthesized_expression "(uVar36 < 0x22)" ( (binary_expression "uVar36 < 0x22" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" { comment comment (expression_statement "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))()" identifier = (call_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))" ( (pointer_expression "*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" * (cast_expression "(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" ( (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c" (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (if_statement "if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" else (compound_statement "{\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar9 = *(int *)(puVar38 + 0x2b8f68);" (assignment_expression "iVar9 = *(int *)(puVar38 + 0x2b8f68)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" * (cast_expression "(int *)(puVar38 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8f68)" ( (binary_expression "puVar38 + 0x2b8f68" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);" do (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar8 + -0x6728)" ( identifier , number_literal , (binary_expression "iVar8 + -0x6728" identifier + number_literal) ))) ;) (expression_statement "dVar47 = dVar44 / dVar41;" (assignment_expression "dVar47 = dVar44 / dVar41" identifier = (binary_expression "dVar44 / dVar41" identifier / identifier)) ;) (expression_statement "iVar28 = iVar5 + 1;" (assignment_expression "iVar28 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);" (call_expression "(*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c)" (parenthesized_expression "(*(code *)(iVar9 + -0x1a60))" ( (pointer_expression "*(code *)(iVar9 + -0x1a60)" * (cast_expression "(code *)(iVar9 + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x1a60)" ( (binary_expression "iVar9 + -0x1a60" identifier + number_literal) )))) )) (argument_list "(puVar32,iVar5,auStack_110c)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = iVar28;" (assignment_expression "iVar5 = iVar28" identifier = identifier) ;) }) while (parenthesized_expression "(iVar28 < piVar22[0xb0])" ( (binary_expression "iVar28 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }" { (expression_statement "dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;" (assignment_expression "dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41" identifier = (binary_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41" (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) (expression_statement "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);" (call_expression "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158)" (parenthesized_expression "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))" ( (pointer_expression "*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" * (cast_expression "(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" ( (binary_expression "*(int *)(puVar38 + 0x2b8f68) + -0x1a60" (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" * (cast_expression "(int *)(puVar38 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8f68)" ( (binary_expression "puVar38 + 0x2b8f68" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }" if (parenthesized_expression "((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3))" ( (binary_expression "(uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)" (parenthesized_expression "(uVar36 != 0x21)" ( (binary_expression "uVar36 != 0x21" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)" ( (comma_expression "iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8f68)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" * (cast_expression "(int *)(puVar38 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8f68)" ( (binary_expression "puVar38 + 0x2b8f68" identifier + number_literal) ))))) , (binary_expression "uVar36 != 3" identifier != number_literal)) ))) )) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }" { (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6748" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;" (assignment_expression "dVar47 = *(double *)(iVar8 + 0x1438) / dVar41" identifier = (binary_expression "*(double *)(iVar8 + 0x1438) / dVar41" (pointer_expression "*(double *)(iVar8 + 0x1438)" * (cast_expression "(double *)(iVar8 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1438)" ( (binary_expression "iVar8 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "(*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);" (call_expression "(*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" (parenthesized_expression "(*(code *)(iVar5 + -0x1a60))" ( (pointer_expression "*(code *)(iVar5 + -0x1a60)" * (cast_expression "(code *)(iVar5 + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x1a60)" ( (binary_expression "iVar5 + -0x1a60" identifier + number_literal) )))) )) (argument_list "(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(piVar16);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier ))) ;) })) (if_statement "if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }" { (expression_statement "iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;" (assignment_expression "iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1" identifier = (binary_expression "(1 << (piVar22[8] & 0x1fU)) + -1" (parenthesized_expression "(1 << (piVar22[8] & 0x1fU))" ( (binary_expression "1 << (piVar22[8] & 0x1fU)" number_literal << (parenthesized_expression "(piVar22[8] & 0x1fU)" ( (binary_expression "piVar22[8] & 0x1fU" (subscript_expression "piVar22[8]" identifier [ number_literal ]) & number_literal) ))) )) + number_literal)) ;) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6718" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" if (parenthesized_expression "(uVar36 == 3)" ( (binary_expression "uVar36 == 3" identifier == number_literal) )) (compound_statement "{\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }" { (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }" if (parenthesized_expression "(piVar22[0xaf] != 0)" ( (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000f339c:\n            dVar47 = dVar41;" statement_identifier : (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;)) (expression_statement "FUN_000ef7f8(puVar32,4,iVar5 + 0x158);" (call_expression "FUN_000ef7f8(puVar32,4,iVar5 + 0x158)" identifier (argument_list "(puVar32,4,iVar5 + 0x158)" ( identifier , number_literal , (binary_expression "iVar5 + 0x158" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000f33c0;" goto statement_identifier ;) })) (labeled_statement "LAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" else (compound_statement "{\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" { (if_statement "if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }" if (parenthesized_expression "(uVar36 < 4)" ( (binary_expression "uVar36 < 4" identifier < number_literal) )) (compound_statement "{\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }" { (if_statement "if (uVar36 != 2) goto LAB_000f33e4;" if (parenthesized_expression "(uVar36 != 2)" ( (binary_expression "uVar36 != 2" identifier != number_literal) )) (goto_statement "goto LAB_000f33e4;" goto statement_identifier ;)) (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);" (call_expression "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);" (call_expression "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);" (call_expression "FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164)" identifier (argument_list "(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (piVar22[0xaf] != 0) goto LAB_000f3398;" if (parenthesized_expression "(piVar22[0xaf] != 0)" ( (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000f3398;" goto statement_identifier ;)) (labeled_statement "LAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);" statement_identifier : (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6704" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);" (call_expression "FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" identifier (argument_list "(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (goto_statement "goto LAB_000f1160;" goto statement_identifier ;) })) (if_statement "if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" if (parenthesized_expression "((uVar36 == 0x15) || (uVar36 == 0x17))" ( (binary_expression "(uVar36 == 0x15) || (uVar36 == 0x17)" (parenthesized_expression "(uVar36 == 0x15)" ( (binary_expression "uVar36 == 0x15" identifier == number_literal) )) || (parenthesized_expression "(uVar36 == 0x17)" ( (binary_expression "uVar36 == 0x17" identifier == number_literal) ))) )) (compound_statement "{\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }" { (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);" (call_expression "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (expression_statement "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);" (call_expression "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000f3384:\n            iVar5 = piVar22[0xaf];" statement_identifier : (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;)) }) (else_clause "else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" else (compound_statement "{\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" { (labeled_statement "LAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (if_statement "if (piVar22[0xb0] < 1) goto LAB_000f3384;" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f3384;" goto statement_identifier ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (do_statement "do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);" do (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            }" { (expression_statement "(**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9)" ( identifier , number_literal , (binary_expression "iVar5 + -0x6728" identifier + number_literal) , identifier , (cast_expression "(double)iVar9" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (expression_statement "FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);" (call_expression "FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6)" identifier (argument_list "(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6)" ( identifier , identifier , (binary_expression "iVar8 + 0x6b1c" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < piVar22[0xb0])" ( (binary_expression "iVar9 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" { (labeled_statement "LAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000f339c;" goto statement_identifier ;) })) (labeled_statement "LAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) ;)) (if_statement "if (uVar36 != 3) goto LAB_000f1124;" if (parenthesized_expression "(uVar36 != 3)" ( (binary_expression "uVar36 != 3" identifier != number_literal) )) (goto_statement "goto LAB_000f1124;" goto statement_identifier ;)) }))) (expression_statement "(*pcVar40)(iVar6);" (call_expression "(*pcVar40)(iVar6)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(iVar6)" ( identifier ))) ;) })) (if_statement "if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x66f0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }" if (parenthesized_expression "(0 < *(int *)(iVar7 + 0x90))" ( (binary_expression "0 < *(int *)(iVar7 + 0x90)" number_literal < (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }" { (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = (undefined4 *)(iVar7 + 0x94);" (assignment_expression "puVar11 = (undefined4 *)(iVar7 + 0x94)" identifier = (cast_expression "(undefined4 *)(iVar7 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x94)" ( (binary_expression "iVar7 + 0x94" identifier + number_literal) )))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);" do (compound_statement "{\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,*puVar11)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,*puVar11)" ( number_literal , (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x62ac,uVar21)" ( identifier , (binary_expression "iVar6 + -0x62ac" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = *(int *)(iVar7 + 0x90);" (assignment_expression "iVar9 = *(int *)(iVar7 + 0x90)" identifier = (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }" if (parenthesized_expression "(iVar8 < iVar9 + -1)" ( (binary_expression "iVar8 < iVar9 + -1" identifier < (binary_expression "iVar9 + -1" identifier + number_literal)) )) (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + 0x2948)" ( identifier , (binary_expression "iVar5 + 0x2948" identifier + number_literal) ))) ;) (expression_statement "iVar9 = *(int *)(iVar7 + 0x90);" (assignment_expression "iVar9 = *(int *)(iVar7 + 0x90)" identifier = (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < iVar9)" ( (binary_expression "iVar8 < iVar9" identifier < identifier) )) ;) })) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x4bdc)" ( identifier , (binary_expression "iVar5 + -0x4bdc" identifier + number_literal) ))) ;) (if_statement "if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }" if (parenthesized_expression "(0 < piVar22[0xb0])" ( (binary_expression "0 < piVar22[0xb0]" number_literal < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }" { (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "iStack_418c = 0;" (assignment_expression "iStack_418c = 0" identifier = number_literal) ;) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iStack_4180 = 0;" (assignment_expression "iStack_4180 = 0" identifier = number_literal) ;) (expression_statement "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);" do (compound_statement "{\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          }" { (expression_statement "iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);" (assignment_expression "iVar9 = *(int *)(piVar22[0xb4] + iStack_418c)" identifier = (pointer_expression "*(int *)(piVar22[0xb4] + iStack_418c)" * (cast_expression "(int *)(piVar22[0xb4] + iStack_418c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + iStack_418c)" ( (binary_expression "piVar22[0xb4] + iStack_418c" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + identifier) ))))) ;) (if_statement "if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }" if (parenthesized_expression "((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0))" ( (binary_expression "(iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)" (parenthesized_expression "(iVar9 != 5)" ( (binary_expression "iVar9 != 5" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0" (pointer_expression "*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4)" * (cast_expression "(int *)(piVar22[0xb4] + iVar9 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + iVar9 * 0xc + 4)" ( (binary_expression "piVar22[0xb4] + iVar9 * 0xc + 4" (binary_expression "piVar22[0xb4] + iVar9 * 0xc" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + (binary_expression "iVar9 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }" { (expression_statement "dVar43 = (double)iVar9;" (assignment_expression "dVar43 = (double)iVar9" identifier = (cast_expression "(double)iVar9" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n                dVar43 = dVar43 + dVar44;\n              }" { (expression_statement "dVar43 = dVar43 + dVar44;" (assignment_expression "dVar43 = dVar43 + dVar44" identifier = (binary_expression "dVar43 + dVar44" identifier + identifier)) ;) })) (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar28 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar28 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0))" ( identifier , (binary_expression "iVar6 + -0x66d4" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar43 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar43 >> 0x20)" ( (binary_expression "(ulonglong)dVar43 >> 0x20" (cast_expression "(ulonglong)dVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar43,0)" identifier (argument_list "(dVar43,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "iVar29 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar29 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);" (assignment_expression "pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0)" identifier = (cast_expression "(double *)(iVar9 * 0x2b0 + iVar7 + 0xb0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 * 0x2b0 + iVar7 + 0xb0)" ( (binary_expression "iVar9 * 0x2b0 + iVar7 + 0xb0" (binary_expression "iVar9 * 0x2b0 + iVar7" (binary_expression "iVar9 * 0x2b0" identifier * number_literal) + identifier) + number_literal) )))) ;) (do_statement "do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);" do (compound_statement "{\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0))" ( identifier , (binary_expression "iVar28 + -0x66c0" identifier + number_literal) , (cast_expression "(int)((ulonglong)((double)iVar27 + dVar41) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)((double)iVar27 + dVar41) >> 0x20)" ( (binary_expression "(ulonglong)((double)iVar27 + dVar41) >> 0x20" (call_expression "(ulonglong)((double)iVar27 + dVar41)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "((double)iVar27 + dVar41)" ( (binary_expression "(double)iVar27 + dVar41" (cast_expression "(double)iVar27" ( (type_descriptor "double" primitive_type) ) identifier) + identifier) ))) >> number_literal) ))) , (call_expression "SUB84((double)iVar27 + dVar41,0)" identifier (argument_list "((double)iVar27 + dVar41,0)" ( (binary_expression "(double)iVar27 + dVar41" (cast_expression "(double)iVar27" ( (type_descriptor "double" primitive_type) ) identifier) + identifier) , number_literal ))) ))) ;) (if_statement "if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }" if (parenthesized_expression "(0 < *(int *)(iVar7 + 0x90))" ( (binary_expression "0 < *(int *)(iVar7 + 0x90)" number_literal < (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) )) (compound_statement "{\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "pdVar30 = pdStack_4198;" (assignment_expression "pdVar30 = pdStack_4198" identifier = identifier) ;) (do_statement "do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));" do (compound_statement "{\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  }" { (while_statement "while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9e18))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9e18))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e18))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e18)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e18)" * (cast_expression "(code **)(puVar38 + 0x2b9e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e18)" ( (binary_expression "puVar38 + 0x2b9e18" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "dVar47 = *pdVar30;" (assignment_expression "dVar47 = *pdVar30" identifier = (pointer_expression "*pdVar30" * identifier)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar8 + 0x1710,uVar21)" ( identifier , (binary_expression "iVar8 + 0x1710" identifier + number_literal) , identifier ))) ;) (if_statement "if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;" if (parenthesized_expression "(*(int *)(iVar7 + 0x90) + -1 <= iVar9)" ( (binary_expression "*(int *)(iVar7 + 0x90) + -1 <= iVar9" (binary_expression "*(int *)(iVar7 + 0x90) + -1" (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) + number_literal) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pdVar30 = pdVar30 + 9;" (assignment_expression "pdVar30 = pdVar30 + 9" identifier = (binary_expression "pdVar30 + 9" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar29 + 0x2948)" ( identifier , (binary_expression "iVar29 + 0x2948" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;" if (parenthesized_expression "(*(int *)(iVar7 + 0x90) <= iVar9)" ( (binary_expression "*(int *)(iVar7 + 0x90) <= iVar9" (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_000f2c54;" goto statement_identifier ;)) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pdVar30 = pdVar30 + 9;" (assignment_expression "pdVar30 = pdVar30 + 9" identifier = (binary_expression "pdVar30 + 9" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar7 + 0x90))" ( (binary_expression "iVar9 < *(int *)(iVar7 + 0x90)" identifier < (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_000f2c54:\n                iVar27 = iVar27 + 1;" statement_identifier : (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;)) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x4bdc)" ( identifier , (binary_expression "iVar5 + -0x4bdc" identifier + number_literal) ))) ;) (expression_statement "pdStack_4198 = pdStack_4198 + 1;" (assignment_expression "pdStack_4198 = pdStack_4198 + 1" identifier = (binary_expression "pdStack_4198 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar27 != 7)" ( (binary_expression "iVar27 != 7" identifier != number_literal) )) ;) })) (expression_statement "iStack_4180 = iStack_4180 + 1;" (assignment_expression "iStack_4180 = iStack_4180 + 1" identifier = (binary_expression "iStack_4180 + 1" identifier + number_literal)) ;) (expression_statement "iStack_418c = iStack_418c + 0xc;" (assignment_expression "iStack_418c = iStack_418c + 0xc" identifier = (binary_expression "iStack_418c + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_4180 < piVar22[0xb0])" ( (binary_expression "iStack_4180 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iVar7);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iVar7)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))) ;) })) (if_statement "if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }" if (parenthesized_expression "(iStack_4190 != 0)" ( (binary_expression "iStack_4190 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x66b0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" if (parenthesized_expression "(uVar36 == 3)" ( (binary_expression "uVar36 == 3" identifier == number_literal) )) (compound_statement "{\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (labeled_statement "LAB_000f16e0:\n          iVar5 = piVar22[0xaf];" statement_identifier : (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" else (compound_statement "{\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" { (if_statement "if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }" if (parenthesized_expression "(3 < uVar36)" ( (binary_expression "3 < uVar36" number_literal < identifier) )) (compound_statement "{\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }" { (if_statement "if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;" if (parenthesized_expression "((uVar36 != 0x15) && (uVar36 != 0x17))" ( (binary_expression "(uVar36 != 0x15) && (uVar36 != 0x17)" (parenthesized_expression "(uVar36 != 0x15)" ( (binary_expression "uVar36 != 0x15" identifier != number_literal) )) && (parenthesized_expression "(uVar36 != 0x17)" ( (binary_expression "uVar36 != 0x17" identifier != number_literal) ))) )) (goto_statement "goto LAB_000f348c;" goto statement_identifier ;)) (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;) })) (if_statement "if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }" if (parenthesized_expression "(uVar36 == 2)" ( (binary_expression "uVar36 == 2" identifier == number_literal) )) (compound_statement "{\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }" { (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190)" identifier (argument_list "(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;) })) (labeled_statement "LAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (if_statement "if (piVar22[0xb0] < 1) goto LAB_000f16e0;" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);" do (compound_statement "{\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          }" { (expression_statement "dVar47 = (double)iVar6;" (assignment_expression "dVar47 = (double)iVar6" identifier = (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6728)" ( identifier , number_literal , (binary_expression "iVar5 + -0x6728" identifier + number_literal) ))) ;) (expression_statement "FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);" (call_expression "FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47)" identifier (argument_list "(puVar32,iVar6,auStack_110c,iStack_4190,dVar47)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 < piVar22[0xb0])" ( (binary_expression "iVar6 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }" { (expression_statement "FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);" (call_expression "FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47)" identifier (argument_list "(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iStack_4190);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iStack_4190)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iStack_4190)" ( identifier ))) ;) })) (if_statement "if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }" { (if_statement "if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }" if (parenthesized_expression "(uVar36 == 2)" ( (binary_expression "uVar36 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9e18))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9e18))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e18))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e18)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e18)" * (cast_expression "(code **)(puVar38 + 0x2b9e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e18)" ( (binary_expression "puVar38 + 0x2b9e18" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9508))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9508)" * (pointer_expression "*(code **)(puVar38 + 0x2b9508)" * (cast_expression "(code **)(puVar38 + 0x2b9508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9508)" ( (binary_expression "puVar38 + 0x2b9508" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6660" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (if_statement "if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }" if (parenthesized_expression "((piVar22[0xaf] != 0) && (0 < piVar22[7]))" ( (binary_expression "(piVar22[0xaf] != 0) && (0 < piVar22[7])" (parenthesized_expression "(piVar22[0xaf] != 0)" ( (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(0 < piVar22[7])" ( (binary_expression "0 < piVar22[7]" number_literal < (subscript_expression "piVar22[7]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = piVar22[6];" (assignment_expression "iVar4 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) (while_statement "while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }" while (parenthesized_expression "(iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0)" ( (comma_expression "iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0" (assignment_expression "iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26)" identifier = (call_expression "(*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22,0,iVar5,iVar4,1,uVar26)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }" { (expression_statement "iVar4 = piVar22[6];" (assignment_expression "iVar4 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }" { (do_statement "do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);" do (compound_statement "{\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              }" { (if_statement "if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }" if (parenthesized_expression "((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45))" ( (binary_expression "(*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)" (parenthesized_expression "(*(int *)(piVar22[0xb4] + 0x34) != 0)" ( (binary_expression "*(int *)(piVar22[0xb4] + 0x34) != 0" (pointer_expression "*(int *)(piVar22[0xb4] + 0x34)" * (cast_expression "(int *)(piVar22[0xb4] + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + 0x34)" ( (binary_expression "piVar22[0xb4] + 0x34" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)" ( (binary_expression "*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45" (pointer_expression "*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" ( (binary_expression "iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4" identifier + (binary_expression "*(int *)(piVar22[0xb4] + 0x38) * 4" (pointer_expression "*(int *)(piVar22[0xb4] + 0x38)" * (cast_expression "(int *)(piVar22[0xb4] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + 0x38)" ( (binary_expression "piVar22[0xb4] + 0x38" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) == (cast_expression "(float)uVar45" ( (type_descriptor "float" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }" { (expression_statement "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);" (call_expression "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a0)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a0)" * (cast_expression "(code **)(puVar38 + 0x2b97a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a0)" ( (binary_expression "puVar38 + 0x2b97a0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);" (call_expression "(**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94e0)" * (pointer_expression "*(code **)(puVar38 + 0x2b94e0)" * (cast_expression "(code **)(puVar38 + 0x2b94e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94e0)" ( (binary_expression "puVar38 + 0x2b94e0" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "uStack_4158 = *(undefined8 *)(piVar22 + 0x92);" (assignment_expression "uStack_4158 = *(undefined8 *)(piVar22 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar22 + 0x92)" * (cast_expression "(undefined8 *)(piVar22 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x92)" ( (binary_expression "piVar22 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "aiStack_4168[0] = *piVar22;" (assignment_expression "aiStack_4168[0] = *piVar22" (subscript_expression "aiStack_4168[0]" identifier [ number_literal ]) = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "aiStack_4168[1] = piVar22[1];" (assignment_expression "aiStack_4168[1] = piVar22[1]" (subscript_expression "aiStack_4168[1]" identifier [ number_literal ]) = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "iStack_4150 = piVar22[8];" (assignment_expression "iStack_4150 = piVar22[8]" identifier = (subscript_expression "piVar22[8]" identifier [ number_literal ])) ;) (expression_statement "aiStack_4168[2] = piVar22[0xaf];" (assignment_expression "aiStack_4168[2] = piVar22[0xaf]" (subscript_expression "aiStack_4168[2]" identifier [ number_literal ]) = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) (expression_statement "dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);" (assignment_expression "dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1a58" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }" { (expression_statement "iVar4 = piVar22[0xb4];" (assignment_expression "iVar4 = piVar22[0xb4]" identifier = (subscript_expression "piVar22[0xb4]" identifier [ number_literal ])) ;) (expression_statement "dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);" (assignment_expression "dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 8) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 8) * 4" identifier + (binary_expression "*(int *)(iVar4 + 8) * 4" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);" (assignment_expression "dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x14) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x14) * 4" (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);" (assignment_expression "dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x20) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x20) * 4" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }" { (expression_statement "dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);" (assignment_expression "dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x2c) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c)" * (cast_expression "(int *)(iVar4 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x34) != 0" (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }" { (expression_statement "aiStack_4168[2] = 4;" (assignment_expression "aiStack_4168[2] = 4" (subscript_expression "aiStack_4168[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);" (assignment_expression "dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x38) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x38) * 4" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x40) != 0" (pointer_expression "*(int *)(iVar4 + 0x40)" * (cast_expression "(int *)(iVar4 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }" { (expression_statement "dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);" (assignment_expression "dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x44) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x44) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x44) * 4" (pointer_expression "*(int *)(iVar4 + 0x44)" * (cast_expression "(int *)(iVar4 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x44)" ( (binary_expression "iVar4 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,1,auStack_110c,uVar26)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6640" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b94c0)" * (cast_expression "(code **)(puVar38 + 0x2b94c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94c0)" ( (binary_expression "puVar38 + 0x2b94c0" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,1,auStack_110c)" ( identifier , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6630" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000f1940;" goto statement_identifier ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + piVar22[0xb0] * 4;" (assignment_expression "iVar6 = iVar6 + piVar22[0xb0] * 4" identifier = (binary_expression "iVar6 + piVar22[0xb0] * 4" identifier + (binary_expression "piVar22[0xb0] * 4" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(iVar4 != iVar7)" ( (binary_expression "iVar4 != iVar7" identifier != identifier) )) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[7] <= iVar5) break;" if (parenthesized_expression "(piVar22[7] <= iVar5)" ( (binary_expression "piVar22[7] <= iVar5" (subscript_expression "piVar22[7]" identifier [ number_literal ]) <= identifier) )) (break_statement "break;" break ;)) })) })) (labeled_statement "LAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);" statement_identifier : (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93f0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93f0)" * (pointer_expression "*(code **)(puVar38 + 0x2b93f0)" * (cast_expression "(code **)(puVar38 + 0x2b93f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f0)" ( (binary_expression "puVar38 + 0x2b93f0" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;)) (if_statement "if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6604" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b928c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b928c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b928c)" * (pointer_expression "*(code **)(puVar38 + 0x2b928c)" * (cast_expression "(code **)(puVar38 + 0x2b928c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b928c)" ( (binary_expression "puVar38 + 0x2b928c" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" * (cast_expression "(code **)(puVar38 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a4)" ( (binary_expression "puVar38 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(piVar22,0,uVar26)" ( identifier , number_literal , identifier )))) ;) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) }) (else_clause "else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" else (compound_statement "{\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" * (cast_expression "(code **)(puVar38 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a4)" ( (binary_expression "puVar38 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(piVar22,0,uVar26)" ( identifier , number_literal , identifier )))) ;) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6614" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" * (cast_expression "(code **)(puVar38 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a4)" ( (binary_expression "puVar38 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(piVar22,puVar32,uVar26)" ( identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" if (parenthesized_expression "(*piVar22 == 2)" ( (binary_expression "*piVar22 == 2" (pointer_expression "*piVar22" * identifier) == number_literal) )) (compound_statement "{\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }" { (expression_statement "dVar41 = (double)piVar22[9];" (assignment_expression "dVar41 = (double)piVar22[9]" identifier = (cast_expression "(double)piVar22[9]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[9] < 0)" ( (binary_expression "piVar22[9] < 0" (subscript_expression "piVar22[9]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65ec" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65d0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;" if (parenthesized_expression "(0x400 < (uint)piVar22[9])" ( (binary_expression "0x400 < (uint)piVar22[9]" number_literal < (cast_expression "(uint)piVar22[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[9]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000f19dc;" goto statement_identifier ;)) (expression_statement "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);" (call_expression "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a0)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a0)" * (cast_expression "(code **)(puVar38 + 0x2b97a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a0)" ( (binary_expression "puVar38 + 0x2b97a0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168)" ( identifier , identifier ))) ;) (expression_statement "piVar24 = (int *)piVar22[10];" (assignment_expression "piVar24 = (int *)piVar22[10]" identifier = (cast_expression "(int *)piVar22[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[10]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[9] < 1) goto LAB_000f19dc;" if (parenthesized_expression "(piVar22[9] < 1)" ( (binary_expression "piVar22[9] < 1" (subscript_expression "piVar22[9]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f19dc;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804" identifier = (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + 0x2804" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);" do (compound_statement "{\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        }" { (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" identifier = identifier) ;) (expression_statement "piVar2 = aiStack_4168;" (assignment_expression "piVar2 = aiStack_4168" identifier = identifier) ;) (do_statement "do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);" do (compound_statement "{\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          }" { (expression_statement "piVar20 = piVar2;" (assignment_expression "piVar20 = piVar2" identifier = identifier) ;) (expression_statement "piVar18 = piVar16;" (assignment_expression "piVar18 = piVar16" identifier = identifier) ;) (expression_statement "pdStack_4198 = (double *)auStack_210c;" (assignment_expression "pdStack_4198 = (double *)auStack_210c" identifier = (cast_expression "(double *)auStack_210c" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar16 = piVar18 + 4;" (assignment_expression "piVar16 = piVar18 + 4" identifier = (binary_expression "piVar18 + 4" identifier + number_literal)) ;) (expression_statement "iVar29 = piVar18[1];" (assignment_expression "iVar29 = piVar18[1]" identifier = (subscript_expression "piVar18[1]" identifier [ number_literal ])) ;) (expression_statement "iVar28 = piVar18[2];" (assignment_expression "iVar28 = piVar18[2]" identifier = (subscript_expression "piVar18[2]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = piVar18[3];" (assignment_expression "iVar9 = piVar18[3]" identifier = (subscript_expression "piVar18[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar20 = *piVar18;" (assignment_expression "*piVar20 = *piVar18" (pointer_expression "*piVar20" * identifier) = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar20[1] = iVar29;" (assignment_expression "piVar20[1] = iVar29" (subscript_expression "piVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[2] = iVar28;" (assignment_expression "piVar20[2] = iVar28" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[3] = iVar9;" (assignment_expression "piVar20[3] = iVar9" (subscript_expression "piVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar20 + 4;" (assignment_expression "piVar2 = piVar20 + 4" identifier = (binary_expression "piVar20 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 != piVar24 + 0x14)" ( (binary_expression "piVar16 != piVar24 + 0x14" identifier != (binary_expression "piVar24 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar9 = piVar18[5];" (assignment_expression "iVar9 = piVar18[5]" identifier = (subscript_expression "piVar18[5]" identifier [ number_literal ])) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d28);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d28)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" * (cast_expression "(code **)(puVar38 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d28)" ( (binary_expression "puVar38 + 0x2b9d28" identifier + number_literal) ))))) ;) (expression_statement "piVar20[4] = *piVar16;" (assignment_expression "piVar20[4] = *piVar16" (subscript_expression "piVar20[4]" identifier [ number_literal ]) = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "piVar20[5] = iVar9;" (assignment_expression "piVar20[5] = iVar9" (subscript_expression "piVar20[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(auStack_110c,iVar5 + -0xad8,0x1000)" ( identifier , (binary_expression "iVar5 + -0xad8" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,0,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,1,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,2,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (if_statement "if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }" if (parenthesized_expression "(aiStack_4168[1] == 2)" ( (binary_expression "aiStack_4168[1] == 2" (subscript_expression "aiStack_4168[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,3,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d84);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d84)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) ;) (if_statement "if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }" if (parenthesized_expression "(aiStack_4168[2] != 0)" ( (binary_expression "aiStack_4168[2] != 0" (subscript_expression "aiStack_4168[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }" { (expression_statement "(*pcVar40)(auStack_110c,iVar8,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,4,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d84);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d84)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) ;) })) (expression_statement "piVar24 = piVar24 + 0x16;" (assignment_expression "piVar24 = piVar24 + 0x16" identifier = (binary_expression "piVar24 + 0x16" identifier + number_literal)) ;) (expression_statement "(*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(auStack_110c,iVar6 + -0x6e0,0x1000)" ( identifier , (binary_expression "iVar6 + -0x6e0" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,1,auStack_410c,uVar26)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);" (call_expression "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b94c0)" * (cast_expression "(code **)(puVar38 + 0x2b94c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94c0)" ( (binary_expression "puVar38 + 0x2b94c0" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,1,pdStack_4198)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar9 = iVar4 + 1;" (assignment_expression "iVar9 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c)" ( identifier , (binary_expression "iVar7 + -0x65c0" identifier + number_literal) , (cast_expression "(int)((ulonglong)(double)iVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(double)iVar4 >> 0x20)" ( (binary_expression "(ulonglong)(double)iVar4 >> 0x20" (cast_expression "(ulonglong)(double)iVar4" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) >> number_literal) ))) , (call_expression "SUB84((double)iVar4,0)" identifier (argument_list "((double)iVar4,0)" ( (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier) , number_literal ))) , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = iVar9;" (assignment_expression "iVar4 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 < piVar22[9])" ( (binary_expression "iVar9 < piVar22[9]" identifier < (subscript_expression "piVar22[9]" identifier [ number_literal ])) )) ;) (expression_statement "iVar4 = piVar22[0xb7];" (assignment_expression "iVar4 = piVar22[0xb7]" identifier = (subscript_expression "piVar22[0xb7]" identifier [ number_literal ])) ;) }) (else_clause "else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" else (compound_statement "{\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" { (labeled_statement "LAB_000f19dc:\n        iVar4 = piVar22[0xb7];" statement_identifier : (expression_statement "iVar4 = piVar22[0xb7];" (assignment_expression "iVar4 = piVar22[0xb7]" identifier = (subscript_expression "piVar22[0xb7]" identifier [ number_literal ])) ;)) }))) (expression_statement "pdStack_4198 = (double *)auStack_210c;" (assignment_expression "pdStack_4198 = (double *)auStack_210c" identifier = (cast_expression "(double *)auStack_210c" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }" if (parenthesized_expression "((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0)" ( (binary_expression "(double)CONCAT44(piVar22[0xb6],iVar4) != 0.0" (cast_expression "(double)CONCAT44(piVar22[0xb6],iVar4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(piVar22[0xb6],iVar4)" identifier (argument_list "(piVar22[0xb6],iVar4)" ( (subscript_expression "piVar22[0xb6]" identifier [ number_literal ]) , identifier )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0xb8) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0xb8) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xb8)" * (cast_expression "(double *)(piVar22 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb8)" ( (binary_expression "piVar22 + 0xb8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -26000" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0xba) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0xba) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xba)" * (cast_expression "(double *)(piVar22 + 0xba)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xba)" ( (binary_expression "piVar22 + 0xba" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6570" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);" (assignment_expression "uVar21 = (*pcVar40)(0x23,piVar22[0x7e])" identifier = (call_expression "(*pcVar40)(0x23,piVar22[0x7e])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x23,piVar22[0x7e])" ( number_literal , (subscript_expression "piVar22[0x7e]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6550" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 100) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 100) != 0.0" (pointer_expression "*(double *)(piVar22 + 100)" * (cast_expression "(double *)(piVar22 + 100)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 100)" ( (binary_expression "piVar22 + 100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6538" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }" if (parenthesized_expression "((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0))" ( (binary_expression "(((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)" (parenthesized_expression "(((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0))" ( (binary_expression "((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)" (parenthesized_expression "((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0))" ( (binary_expression "(*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)" (parenthesized_expression "(*(double *)(piVar22 + 0x66) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x66) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x66)" * (cast_expression "(double *)(piVar22 + 0x66)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x66)" ( (binary_expression "piVar22 + 0x66" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(double *)(piVar22 + 0x6c) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x6c) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x6c)" * (cast_expression "(double *)(piVar22 + 0x6c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x6c)" ( (binary_expression "piVar22 + 0x6c" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(*(double *)(piVar22 + 0x72) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x72) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x72)" * (cast_expression "(double *)(piVar22 + 0x72)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x72)" ( (binary_expression "piVar22 + 0x72" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(*(double *)(piVar22 + 0x78) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x78) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x78)" * (cast_expression "(double *)(piVar22 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x78)" ( (binary_expression "piVar22 + 0x78" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6528" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6514" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x66]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x67]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x68)" * (cast_expression "(undefined8 *)(piVar22 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x68)" ( (binary_expression "piVar22 + 0x68" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x6c]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x6d]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x6e)" * (cast_expression "(undefined8 *)(piVar22 + 0x6e)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x6e)" ( (binary_expression "piVar22 + 0x6e" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64dc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x72]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x73]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x74)" * (cast_expression "(undefined8 *)(piVar22 + 0x74)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x74)" ( (binary_expression "piVar22 + 0x74" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x78]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x79]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x7a)" * (cast_expression "(undefined8 *)(piVar22 + 0x7a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x7a)" ( (binary_expression "piVar22 + 0x7a" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar5 = piVar22[0x8e];" (assignment_expression "iVar5 = piVar22[0x8e]" identifier = (subscript_expression "piVar22[0x8e]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar22[0x8f];" (assignment_expression "iVar4 = piVar22[0x8f]" identifier = (subscript_expression "piVar22[0x8f]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }" if (parenthesized_expression "(iVar5 * iVar4 != 0)" ( (binary_expression "iVar5 * iVar4 != 0" (binary_expression "iVar5 * iVar4" identifier * identifier) != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }" { (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar4;" (assignment_expression "dVar47 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64a4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)piVar22[0x90]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x90]" identifier [ number_literal ])) , (cast_expression "(double)piVar22[0x91]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x91]" identifier [ number_literal ])) ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0xcdc" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6478" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0x22" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6464" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0x38" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x644c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0x4e" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6438" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x24,piVar22[0x96])" ( number_literal , (subscript_expression "piVar22[0x96]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x641c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x38,piVar22[0x95])" ( number_literal , (subscript_expression "piVar22[0x95]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6408" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0xd,piVar22[0x99])" ( number_literal , (subscript_expression "piVar22[0x99]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63f4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar5 = piVar22[0x8a];" (assignment_expression "iVar5 = piVar22[0x8a]" identifier = (subscript_expression "piVar22[0x8a]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar22[0x8b];" (assignment_expression "iVar4 = piVar22[0x8b]" identifier = (subscript_expression "piVar22[0x8b]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (expression_statement "iVar6 = piVar22[0x8c];" (assignment_expression "iVar6 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar22[0x8d];" (assignment_expression "iVar7 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (if_statement "if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }" if (parenthesized_expression "((iVar4 != 0) || (iVar6 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar6 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f29c0;" goto statement_identifier ;) })) (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) goto LAB_000f29c0;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f29c0;" goto statement_identifier ;)) (labeled_statement "LAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" else (compound_statement "{\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" { (expression_statement "iVar6 = piVar22[0x8c];" (assignment_expression "iVar6 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar22[0x8d];" (assignment_expression "iVar7 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (labeled_statement "LAB_000f29c0:\n        dVar47 = (double)iVar4;" statement_identifier : (expression_statement "dVar47 = (double)iVar4;" (assignment_expression "dVar47 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63e4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (if_statement "if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }" if (parenthesized_expression "((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))" ( (binary_expression "(piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0)" (parenthesized_expression "(piVar22[0x8c] != 0)" ( (binary_expression "piVar22[0x8c] != 0" (subscript_expression "piVar22[0x8c]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0)" ( (comma_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) , (binary_expression "piVar22[0x8d] != 0" (subscript_expression "piVar22[0x8d]" identifier [ number_literal ]) != number_literal)) ))) )) (compound_statement "{\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }" { (expression_statement "dVar41 = (double)piVar22[0x8c];" (assignment_expression "dVar41 = (double)piVar22[0x8c]" identifier = (cast_expression "(double)piVar22[0x8c]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x8c]" identifier [ number_literal ]))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63b8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , (cast_expression "(double)piVar22[0x8d]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ))) ;) (goto_statement "goto LAB_000f1db8;" goto statement_identifier ;) })) }))) (expression_statement "uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);" (assignment_expression "uVar21 = (*pcVar40)(0x15,piVar22[0x9a])" identifier = (call_expression "(*pcVar40)(0x15,piVar22[0x9a])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x15,piVar22[0x9a])" ( number_literal , (subscript_expression "piVar22[0x9a]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6394" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar4 = piVar22[0x9c];" (assignment_expression "iVar4 = piVar22[0x9c]" identifier = (subscript_expression "piVar22[0x9c]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6384" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , (cast_expression "(double)piVar22[0x9e]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x9e]" identifier [ number_literal ])) ))) ;) })) (expression_statement "iVar4 = piVar22[0x9f];" (assignment_expression "iVar4 = piVar22[0x9f]" identifier = (subscript_expression "piVar22[0x9f]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x636c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "iVar4 = piVar22[0x9d];" (assignment_expression "iVar4 = piVar22[0x9d]" identifier = (subscript_expression "piVar22[0x9d]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6354" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "iVar4 = piVar22[0x9b];" (assignment_expression "iVar4 = piVar22[0x9b]" identifier = (subscript_expression "piVar22[0x9b]" identifier [ number_literal ])) ;) (if_statement "if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" if (parenthesized_expression "(piVar22[0xcda] == 0)" ( (binary_expression "piVar22[0xcda] == 0" (subscript_expression "piVar22[0xcda]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }" { (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9764);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9764)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9764)" * (cast_expression "(code **)(puVar38 + 0x2b9764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9764)" ( (binary_expression "puVar38 + 0x2b9764" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xcd9] != 0) goto LAB_000f1e64;" if (parenthesized_expression "(piVar22[0xcd9] != 0)" ( (binary_expression "piVar22[0xcd9] != 0" (subscript_expression "piVar22[0xcd9]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000f1e64;" goto statement_identifier ;)) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6324" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (goto_statement "goto LAB_000f1ed4;" goto statement_identifier ;) })) }) (else_clause "else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" else (compound_statement "{\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9764);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9764)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9764)" * (cast_expression "(code **)(puVar38 + 0x2b9764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9764)" ( (binary_expression "puVar38 + 0x2b9764" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);" statement_identifier : (expression_statement "iVar5 = (*pcVar40)(piVar22);" (assignment_expression "iVar5 = (*pcVar40)(piVar22)" identifier = (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22)" ( identifier )))) ;)) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6340" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) (labeled_statement "LAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar21 = (*pcVar40)(0xe,piVar22[2]);" (assignment_expression "uVar21 = (*pcVar40)(0xe,piVar22[2])" identifier = (call_expression "(*pcVar40)(0xe,piVar22[2])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0xe,piVar22[2])" ( number_literal , (subscript_expression "piVar22[2]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6314" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar4 = piVar22[3];" (assignment_expression "iVar4 = piVar22[3]" identifier = (subscript_expression "piVar22[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6300" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x36,piVar22[4])" ( number_literal , (subscript_expression "piVar22[4]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ec" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }" if (parenthesized_expression "(piVar22[0x81] != 0)" ( (binary_expression "piVar22[0x81] != 0" (subscript_expression "piVar22[0x81]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62d8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }" if (parenthesized_expression "(piVar22[0x82] != 0)" ( (binary_expression "piVar22[0x82] != 0" (subscript_expression "piVar22[0x82]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b96bc))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b96bc))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b96bc))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96bc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b96bc)" * (pointer_expression "*(code **)(puVar38 + 0x2b96bc)" * (cast_expression "(code **)(puVar38 + 0x2b96bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b96bc)" ( (binary_expression "puVar38 + 0x2b96bc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);" (call_expression "(**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9974))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9974)" * (pointer_expression "*(code **)(puVar38 + 0x2b9974)" * (cast_expression "(code **)(puVar38 + 0x2b9974)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9974)" ( (binary_expression "puVar38 + 0x2b9974" identifier + number_literal) ))))) )) (argument_list "(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62c8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar25 = (char *)piVar22[0x82];" (assignment_expression "pcVar25 = (char *)piVar22[0x82]" identifier = (cast_expression "(char *)piVar22[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[0x82]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = (int)*pcVar25;" (assignment_expression "iVar5 = (int)*pcVar25" identifier = (cast_expression "(int)*pcVar25" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar25" * identifier))) ;) (if_statement "if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }" { (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar9 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (do_statement "do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);" do (compound_statement "{\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          }" { (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;) (expression_statement "pcVar37 = pcVar25;" (assignment_expression "pcVar37 = pcVar25" identifier = identifier) ;) (if_statement "if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }" if (parenthesized_expression "(1 < (iVar5 + 1U & 0xff))" ( (binary_expression "1 < (iVar5 + 1U & 0xff)" number_literal < (parenthesized_expression "(iVar5 + 1U & 0xff)" ( (binary_expression "iVar5 + 1U & 0xff" (binary_expression "iVar5 + 1U" identifier + number_literal) & number_literal) ))) )) (compound_statement "{\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }" { (do_statement "do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);" do (compound_statement "{\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              }" { (expression_statement "pcVar37 = pcVar37 + 1;" (assignment_expression "pcVar37 = pcVar37 + 1" identifier = (binary_expression "pcVar37 + 1" identifier + number_literal)) ;) (if_statement "if ((byte)(*pcVar37 + 1U) < 2) break;" if (parenthesized_expression "((byte)(*pcVar37 + 1U) < 2)" ( (binary_expression "(byte)(*pcVar37 + 1U) < 2" (call_expression "(byte)(*pcVar37 + 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar37 + 1U)" ( (binary_expression "*pcVar37 + 1U" (pointer_expression "*pcVar37" * identifier) + number_literal) ))) < number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((uint)((int)pcVar37 - (int)pcVar25) < 0x1000)" ( (binary_expression "(uint)((int)pcVar37 - (int)pcVar25) < 0x1000" (call_expression "(uint)((int)pcVar37 - (int)pcVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar37 - (int)pcVar25)" ( (binary_expression "(int)pcVar37 - (int)pcVar25" (cast_expression "(int)pcVar37" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) ;) (expression_statement "iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;" (assignment_expression "iVar28 = ((int)pcVar37 - (int)pcVar25) + 1" identifier = (binary_expression "((int)pcVar37 - (int)pcVar25) + 1" (parenthesized_expression "((int)pcVar37 - (int)pcVar25)" ( (binary_expression "(int)pcVar37 - (int)pcVar25" (cast_expression "(int)pcVar37" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d28))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d28)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" * (cast_expression "(code **)(puVar38 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d28)" ( (binary_expression "puVar38 + 0x2b9d28" identifier + number_literal) ))))) )) (argument_list "(iVar4 + 0x2210,pcVar25,iVar28)" ( (binary_expression "iVar4 + 0x2210" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210)" ( identifier , (binary_expression "iVar6 + -0x62b0" identifier + number_literal) , (binary_expression "iVar4 + 0x2210" identifier + number_literal) ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9a90))(0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a90))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a90)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a90)" * (cast_expression "(code **)(puVar38 + 0x2b9a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a90)" ( (binary_expression "puVar38 + 0x2b9a90" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9400))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9400)" * (pointer_expression "*(code **)(puVar38 + 0x2b9400)" * (cast_expression "(code **)(puVar38 + 0x2b9400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9400)" ( (binary_expression "puVar38 + 0x2b9400" identifier + number_literal) ))))) )) (argument_list "(iVar4,uVar26)" ( identifier , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a90))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a90))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a90))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a90)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a90)" * (cast_expression "(code **)(puVar38 + 0x2b9a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a90)" ( (binary_expression "puVar38 + 0x2b9a90" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier ))) ;) (if_statement "if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" else (compound_statement "{\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" { (expression_statement "dVar44 = (double)*(int *)(iVar5 + 0x3340);" (assignment_expression "dVar44 = (double)*(int *)(iVar5 + 0x3340)" identifier = (cast_expression "(double)*(int *)(iVar5 + 0x3340)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar5 + 0x3340)" * (cast_expression "(int *)(iVar5 + 0x3340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3340)" ( (binary_expression "iVar5 + 0x3340" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }" if (parenthesized_expression "(*(int *)(iVar5 + 0x3340) < 0)" ( (binary_expression "*(int *)(iVar5 + 0x3340) < 0" (pointer_expression "*(int *)(iVar5 + 0x3340)" * (cast_expression "(int *)(iVar5 + 0x3340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3340)" ( (binary_expression "iVar5 + 0x3340" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                dVar44 = dVar44 + dVar47;\n              }" { (expression_statement "dVar44 = dVar44 + dVar47;" (assignment_expression "dVar44 = dVar44 + dVar47" identifier = (binary_expression "dVar44 + dVar47" identifier + identifier)) ;) })) (expression_statement "dVar43 = (double)*(int *)(iVar5 + 0x3344);" (assignment_expression "dVar43 = (double)*(int *)(iVar5 + 0x3344)" identifier = (cast_expression "(double)*(int *)(iVar5 + 0x3344)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar5 + 0x3344)" * (cast_expression "(int *)(iVar5 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3344)" ( (binary_expression "iVar5 + 0x3344" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }" if (parenthesized_expression "(*(int *)(iVar5 + 0x3344) < 0)" ( (binary_expression "*(int *)(iVar5 + 0x3344) < 0" (pointer_expression "*(int *)(iVar5 + 0x3344)" * (cast_expression "(int *)(iVar5 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3344)" ( (binary_expression "iVar5 + 0x3344" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                dVar43 = dVar43 + dVar41;\n              }" { (expression_statement "dVar43 = dVar43 + dVar41;" (assignment_expression "dVar43 = dVar43 + dVar41" identifier = (binary_expression "dVar43 + dVar41" identifier + identifier)) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340)" ( identifier , (binary_expression "iVar7 + -0x62a8" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar44 >> 0x20)" ( (binary_expression "(ulonglong)dVar44 >> 0x20" (cast_expression "(ulonglong)dVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar44,0)" identifier (argument_list "(dVar44,0)" ( identifier , number_literal ))) , identifier , (binary_expression "iVar5 + 0x2340" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9500))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9500)" * (pointer_expression "*(code **)(puVar38 + 0x2b9500)" * (cast_expression "(code **)(puVar38 + 0x2b9500)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9500)" ( (binary_expression "puVar38 + 0x2b9500" identifier + number_literal) ))))) )) (argument_list "(iVar5,uVar26)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9180))(iVar5);" (call_expression "(**(code **)(puVar38 + 0x2b9180))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9180))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9180)" * (pointer_expression "*(code **)(puVar38 + 0x2b9180)" * (cast_expression "(code **)(puVar38 + 0x2b9180)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9180)" ( (binary_expression "puVar38 + 0x2b9180" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (while_statement "while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }" while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar8 + -0x6294,iVar28)" ( identifier , (binary_expression "iVar8 + -0x6294" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" * (cast_expression "(code **)(puVar38 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98e8)" ( (binary_expression "puVar38 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar28,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar9 + -0x18b8,iVar28)" ( identifier , (binary_expression "iVar9 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9438))(iVar5);" (call_expression "(**(code **)(puVar38 + 0x2b9438))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9438))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9438)" * (pointer_expression "*(code **)(puVar38 + 0x2b9438)" * (cast_expression "(code **)(puVar38 + 0x2b9438)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9438)" ( (binary_expression "puVar38 + 0x2b9438" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) (expression_statement "iVar5 = (int)pcVar37[1];" (assignment_expression "iVar5 = (int)pcVar37[1]" identifier = (cast_expression "(int)pcVar37[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar37[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar25 = pcVar37 + 1;" (assignment_expression "pcVar25 = pcVar37 + 1" identifier = (binary_expression "pcVar37 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9ad4))(iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9ad4))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ad4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ad4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ad4)" * (cast_expression "(code **)(puVar38 + 0x2b9ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ad4)" ( (binary_expression "puVar38 + 0x2b9ad4" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x628c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" * (cast_expression "(code **)(puVar38 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98e8)" ( (binary_expression "puVar38 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(piVar22,pdStack_4198,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6278" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9824))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9824))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9824)" * (pointer_expression "*(code **)(puVar38 + 0x2b9824)" * (cast_expression "(code **)(puVar38 + 0x2b9824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9824)" ( (binary_expression "puVar38 + 0x2b9824" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }" if (parenthesized_expression "(0x50 < uVar36)" ( (binary_expression "0x50 < uVar36" number_literal < identifier) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b94e8)" * (cast_expression "(code **)(puVar38 + 0x2b94e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94e8)" ( (binary_expression "puVar38 + 0x2b94e8" identifier + number_literal) ))))) )) (argument_list "(10,puVar32)" ( number_literal , identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);" (assignment_expression "puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" identifier = (cast_expression "(undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9da0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9da0)" * (pointer_expression "*(code **)(puVar38 + 0x2b9da0)" * (cast_expression "(code **)(puVar38 + 0x2b9da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9da0)" ( (binary_expression "puVar38 + 0x2b9da0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,uVar26)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" if (parenthesized_expression "(puVar13 != (undefined8 *)0x0)" ( (binary_expression "puVar13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" { (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d00))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d00)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d00)" * (cast_expression "(code **)(puVar38 + 0x2b9d00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d00)" ( (binary_expression "puVar38 + 0x2b9d00" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }" if (parenthesized_expression "(0 < aiStack_4168[0])" ( (binary_expression "0 < aiStack_4168[0]" number_literal < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar39 = puVar13;" (assignment_expression "puVar39 = puVar13" identifier = identifier) ;) (do_statement "do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);" do (compound_statement "{\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);" (call_expression "(**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1])" ( identifier , number_literal , (binary_expression "iVar5 + -0x6264" identifier + number_literal) , identifier , (pointer_expression "*puVar39" * identifier) , (subscript_expression "puVar39[1]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9894))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9894)" * (pointer_expression "*(code **)(puVar38 + 0x2b9894)" * (cast_expression "(code **)(puVar38 + 0x2b9894)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9894)" ( (binary_expression "puVar38 + 0x2b9894" identifier + number_literal) ))))) )) (argument_list "(&uStack_416c,auStack_110c)" ( (pointer_expression "&uStack_416c" & identifier) , identifier ))) ;) (expression_statement "puVar39 = puVar39 + 2;" (assignment_expression "puVar39 = puVar39 + 2" identifier = (binary_expression "puVar39 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 < aiStack_4168[0])" ( (binary_expression "iVar4 < aiStack_4168[0]" identifier < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(puVar13);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(puVar13)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x625c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uStack_416c)" ( identifier )))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b91ec))" ( (pointer_expression "**(code **)(puVar38 + 0x2b91ec)" * (pointer_expression "*(code **)(puVar38 + 0x2b91ec)" * (cast_expression "(code **)(puVar38 + 0x2b91ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b91ec)" ( (binary_expression "puVar38 + 0x2b91ec" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" { (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d00))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d00)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d00)" * (cast_expression "(code **)(puVar38 + 0x2b9d00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d00)" ( (binary_expression "puVar38 + 0x2b9d00" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }" if (parenthesized_expression "(0 < aiStack_4168[0])" ( (binary_expression "0 < aiStack_4168[0]" number_literal < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);" do (compound_statement "{\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6264)" ( identifier , number_literal , (binary_expression "iVar5 + -0x6264" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9894))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9894)" * (pointer_expression "*(code **)(puVar38 + 0x2b9894)" * (cast_expression "(code **)(puVar38 + 0x2b9894)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9894)" ( (binary_expression "puVar38 + 0x2b9894" identifier + number_literal) ))))) )) (argument_list "(&uStack_416c,auStack_110c)" ( (pointer_expression "&uStack_416c" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(iVar6 < aiStack_4168[0])" ( (binary_expression "iVar6 < aiStack_4168[0]" identifier < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x624c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uStack_416c)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9378))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b9378))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9378))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9378)" * (pointer_expression "*(code **)(puVar38 + 0x2b9378)" * (cast_expression "(code **)(puVar38 + 0x2b9378)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9378)" ( (binary_expression "puVar38 + 0x2b9378" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b93f8))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93f8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93f8)" * (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" * (cast_expression "(code **)(puVar38 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f8)" ( (binary_expression "puVar38 + 0x2b93f8" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6230" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (do_statement "do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);" do (compound_statement "{\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        }" { (do_statement "do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);" do (compound_statement "{\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          }" { (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98c4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98c4)" * (pointer_expression "*(code **)(puVar38 + 0x2b98c4)" * (cast_expression "(code **)(puVar38 + 0x2b98c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98c4)" ( (binary_expression "puVar38 + 0x2b98c4" identifier + number_literal) ))))) )) (argument_list "(piVar22,iVar4)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9234))(iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9234))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9234))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9234)" * (pointer_expression "*(code **)(puVar38 + 0x2b9234)" * (cast_expression "(code **)(puVar38 + 0x2b9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9234)" ( (binary_expression "puVar38 + 0x2b9234" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x6220,iVar4)" ( identifier , (binary_expression "iVar5 + -0x6220" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" * (cast_expression "(code **)(puVar38 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b95fc)" ( (binary_expression "puVar38 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(iVar4,iVar6 + -0x1918)" ( identifier , (binary_expression "iVar6 + -0x1918" identifier + number_literal) )))) ;) (if_statement "if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }" { (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9234))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9234))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9234)" * (pointer_expression "*(code **)(puVar38 + 0x2b9234)" * (cast_expression "(code **)(puVar38 + 0x2b9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9234)" ( (binary_expression "puVar38 + 0x2b9234" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }" if (parenthesized_expression "(0 < iVar28 + -5)" ( (binary_expression "0 < iVar28 + -5" number_literal < (binary_expression "iVar28 + -5" identifier + number_literal)) )) (compound_statement "{\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }" { (expression_statement "iVar27 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar27 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);" do (compound_statement "{\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              }" { (expression_statement "iVar35 = iVar29 + 1;" (assignment_expression "iVar35 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }" if (parenthesized_expression "(*(char *)(iVar17 + iVar29) == '\x1c')" ( (binary_expression "*(char *)(iVar17 + iVar29) == '\x1c'" (pointer_expression "*(char *)(iVar17 + iVar29)" * (cast_expression "(char *)(iVar17 + iVar29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29)" ( (binary_expression "iVar17 + iVar29" identifier + identifier) )))) == (char_literal "'\x1c'" ' escape_sequence ')) )) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }" { (expression_statement "(**(code **)(puVar38 + 0x2b9354))(iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);" (assignment_expression "uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5)" identifier = (call_expression "(uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(*(char *)(iVar17 + iVar29 + 2) - 5)" ( (binary_expression "*(char *)(iVar17 + iVar29 + 2) - 5" (pointer_expression "*(char *)(iVar17 + iVar29 + 2)" * (cast_expression "(char *)(iVar17 + iVar29 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29 + 2)" ( (binary_expression "iVar17 + iVar29 + 2" (binary_expression "iVar17 + iVar29" identifier + identifier) + number_literal) )))) - number_literal) )))) ;) (if_statement "if (uVar36 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }" if (parenthesized_expression "(uVar36 < 0xd7)" ( (binary_expression "uVar36 < 0xd7" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }" { comment comment (expression_statement "uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();" (assignment_expression "uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )()" identifier = (call_expression "(*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )()" (parenthesized_expression "(*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )" ( (pointer_expression "*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" * (cast_expression "(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" ( (binary_expression "puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c" (binary_expression "puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(iVar8 + -0x5f18 + uVar36 * 4)" * (cast_expression "(int *)(iVar8 + -0x5f18 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x5f18 + uVar36 * 4)" ( (binary_expression "iVar8 + -0x5f18 + uVar36 * 4" (binary_expression "iVar8 + -0x5f18" identifier + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (expression_statement "iVar35 = iVar29 + 5;" (assignment_expression "iVar35 = iVar29 + 5" identifier = (binary_expression "iVar29 + 5" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68)" ( identifier , (binary_expression "iVar27 + -0x6200" identifier + number_literal) , (binary_expression "iVar7 + -0x1c68" identifier + number_literal) ))) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);" (assignment_expression "uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3)" identifier = (pointer_expression "*(undefined1 *)(iVar17 + iVar29 + 3)" * (cast_expression "(undefined1 *)(iVar17 + iVar29 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29 + 3)" ( (binary_expression "iVar17 + iVar29 + 3" (binary_expression "iVar17 + iVar29" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));" (assignment_expression "uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" identifier = (cast_expression "(uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" identifier (argument_list "(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" ( identifier , (pointer_expression "*(undefined1 *)(iVar17 + iVar29 + 4)" * (cast_expression "(undefined1 *)(iVar17 + iVar29 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29 + 4)" ( (binary_expression "iVar17 + iVar29 + 4" (binary_expression "iVar17 + iVar29" identifier + identifier) + number_literal) )))) ))))) ;) (if_statement "if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }" if (parenthesized_expression "((uint)(iVar28 - iVar35) <= uVar36)" ( (binary_expression "(uint)(iVar28 - iVar35) <= uVar36" (call_expression "(uint)(iVar28 - iVar35)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar28 - iVar35)" ( (binary_expression "iVar28 - iVar35" identifier - identifier) ))) <= identifier) )) (compound_statement "{\n                    uVar36 = iVar28 - iVar35;\n                  }" { (expression_statement "uVar36 = iVar28 - iVar35;" (assignment_expression "uVar36 = iVar28 - iVar35" identifier = (binary_expression "iVar28 - iVar35" identifier - identifier)) ;) })) (expression_statement "iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);" (assignment_expression "iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99f8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99f8)" * (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" * (cast_expression "(code **)(puVar38 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99f8)" ( (binary_expression "puVar38 + 0x2b99f8" identifier + number_literal) ))))) )) (argument_list "(uVar36 + 0x1000,1)" ( (binary_expression "uVar36 + 0x1000" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }" { (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d28))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d28)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" * (cast_expression "(code **)(puVar38 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d28)" ( (binary_expression "puVar38 + 0x2b9d28" identifier + number_literal) ))))) )) (argument_list "(iVar29,iVar17 + iVar35,uVar36 + 1)" ( identifier , (binary_expression "iVar17 + iVar35" identifier + identifier) , (binary_expression "uVar36 + 1" identifier + number_literal) ))) ;) (expression_statement "piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);" (assignment_expression "piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29)" identifier = (cast_expression "(int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b92cc))(iVar29)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92cc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92cc)" * (pointer_expression "*(code **)(puVar38 + 0x2b92cc)" * (cast_expression "(code **)(puVar38 + 0x2b92cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92cc)" ( (binary_expression "puVar38 + 0x2b92cc" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))))) ;) (if_statement "if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }" if (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }" { (expression_statement "iVar17 = *piVar24;" (assignment_expression "iVar17 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" identifier = identifier) ;) (while_statement "while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }" while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9eac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9eac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9eac)" * (cast_expression "(code **)(puVar38 + 0x2b9eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9eac)" ( (binary_expression "puVar38 + 0x2b9eac" identifier + number_literal) ))))) )) (argument_list "(iVar17,puVar32)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b94e8)" * (cast_expression "(code **)(puVar38 + 0x2b94e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94e8)" ( (binary_expression "puVar38 + 0x2b94e8" identifier + number_literal) ))))) )) (argument_list "(10,puVar32)" ( number_literal , identifier ))) ;) (expression_statement "iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);" (assignment_expression "iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b94ac))(*piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(*piVar16)" ( (pointer_expression "*piVar16" * identifier) )))) ;) (expression_statement "iVar17 = piVar16[1];" (assignment_expression "iVar17 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar16 = iVar19;" (assignment_expression "*piVar16 = iVar19" (pointer_expression "*piVar16" * identifier) = identifier) ;) (expression_statement "piVar16 = piVar16 + 1;" (assignment_expression "piVar16 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(piVar24)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(iVar29);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(iVar29)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) })) }) (else_clause "else {\n                  uVar36 = 1;\n                }" else (compound_statement "{\n                  uVar36 = 1;\n                }" { (expression_statement "uVar36 = 1;" (assignment_expression "uVar36 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar29 = iVar35 + uVar36;" (assignment_expression "iVar29 = iVar35 + uVar36" identifier = (binary_expression "iVar35 + uVar36" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar29 < iVar28 + -5)" ( (binary_expression "iVar29 < iVar28 + -5" identifier < (binary_expression "iVar28 + -5" identifier + number_literal)) )) ;) })) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b93f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b93f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" * (cast_expression "(code **)(puVar38 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f8)" ( (binary_expression "puVar38 + 0x2b93f8" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }" if (parenthesized_expression "(piVar22[0xcd4] != 0)" ( (binary_expression "piVar22[0xcd4] != 0" (subscript_expression "piVar22[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9244))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9244)" * (pointer_expression "*(code **)(puVar38 + 0x2b9244)" * (cast_expression "(code **)(puVar38 + 0x2b9244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9244)" ( (binary_expression "puVar38 + 0x2b9244" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4,iVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b93f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b93f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" * (cast_expression "(code **)(puVar38 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f8)" ( (binary_expression "puVar38 + 0x2b93f8" identifier + number_literal) ))))) ;) })) (expression_statement "iVar4 = (*pcVar40)(piVar22);" (assignment_expression "iVar4 = (*pcVar40)(piVar22)" identifier = (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9180))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b9180))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9180))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9180)" * (pointer_expression "*(code **)(puVar38 + 0x2b9180)" * (cast_expression "(code **)(puVar38 + 0x2b9180)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9180)" ( (binary_expression "puVar38 + 0x2b9180" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61e8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);" do (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" ( identifier , (binary_expression "iVar5 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" * (cast_expression "(code **)(puVar38 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98e8)" ( (binary_expression "puVar38 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(piVar22,iVar4,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" ( identifier , (binary_expression "iVar6 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b99e8))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b99e8))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b99e8)" * (cast_expression "(code **)(puVar38 + 0x2b99e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99e8)" ( (binary_expression "puVar38 + 0x2b99e8" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b20))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b20))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b20)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b20)" * (cast_expression "(code **)(puVar38 + 0x2b9b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b20)" ( (binary_expression "puVar38 + 0x2b9b20" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61cc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);" do (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" ( identifier , (binary_expression "iVar5 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,iVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" ( identifier , (binary_expression "iVar6 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b20))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b20))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b20)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b20)" * (cast_expression "(code **)(puVar38 + 0x2b9b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b20)" ( (binary_expression "puVar38 + 0x2b9b20" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9d50))();" (call_expression "(**(code **)(puVar38 + 0x2b9d50))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d50))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d50)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d50)" * (cast_expression "(code **)(puVar38 + 0x2b9d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d50)" ( (binary_expression "puVar38 + 0x2b9d50" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b970c))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b970c))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b970c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b970c)" * (pointer_expression "*(code **)(puVar38 + 0x2b970c)" * (cast_expression "(code **)(puVar38 + 0x2b970c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b970c)" ( (binary_expression "puVar38 + 0x2b970c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61bc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);" do (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" ( identifier , (binary_expression "iVar5 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ba4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ba4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ba4)" * (cast_expression "(code **)(puVar38 + 0x2b9ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ba4)" ( (binary_expression "puVar38 + 0x2b9ba4" identifier + number_literal) ))))) )) (argument_list "(3,iVar4,uVar26)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" ( identifier , (binary_expression "iVar6 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b970c))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b970c))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b970c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b970c)" * (pointer_expression "*(code **)(puVar38 + 0x2b970c)" * (cast_expression "(code **)(puVar38 + 0x2b970c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b970c)" ( (binary_expression "puVar38 + 0x2b970c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar33 = auStack_310d + 1;" (assignment_expression "puVar33 = auStack_310d + 1" identifier = (binary_expression "auStack_310d + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(2,piVar22[5])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(2,piVar22[5])" ( number_literal , (subscript_expression "piVar22[5]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)" ( (subscript_expression "piVar22[0xaa]" identifier [ number_literal ]) , (subscript_expression "piVar22[0xab]" identifier [ number_literal ]) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x619c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33)" ( (cast_expression "(int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20)" ( (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20" (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]" (cast_expression "(ulonglong)(uint)piVar22[6]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) * (cast_expression "(ulonglong)(uint)piVar22[7]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[7]" identifier [ number_literal ])))) >> number_literal) ))) , (cast_expression "(int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7])" ( (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]" (cast_expression "(ulonglong)(uint)piVar22[6]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) * (cast_expression "(ulonglong)(uint)piVar22[7]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[7]" identifier [ number_literal ])))) ))) , number_literal , (binary_expression "iVar4 + 0x4ff8" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9824))(puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9824))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9824)" * (pointer_expression "*(code **)(puVar38 + 0x2b9824)" * (cast_expression "(code **)(puVar38 + 0x2b9824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9824)" ( (binary_expression "puVar38 + 0x2b9824" identifier + number_literal) ))))) )) (argument_list "(puVar33)" ( identifier )))) ;) (if_statement "if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }" if (parenthesized_expression "(1 < uVar36)" ( (binary_expression "1 < uVar36" number_literal < identifier) )) (compound_statement "{\n        auStack_310d[uVar36] = 0;\n      }" { (expression_statement "auStack_310d[uVar36] = 0;" (assignment_expression "auStack_310d[uVar36] = 0" (subscript_expression "auStack_310d[uVar36]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x618c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }" if (parenthesized_expression "(*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46)" ( (binary_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46" (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x13f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }" { (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));" (assignment_expression "uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" identifier = (call_expression "(**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b8e40))" ( (pointer_expression "**(code **)(puVar38 + 0x2b8e40)" * (pointer_expression "*(code **)(puVar38 + 0x2b8e40)" * (cast_expression "(code **)(puVar38 + 0x2b8e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b8e40)" ( (binary_expression "puVar38 + 0x2b8e40" identifier + number_literal) ))))) )) (argument_list "((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" ( (binary_expression "(dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (binary_expression "(dVar41 * dVar47) / dVar46" (parenthesized_expression "(dVar41 * dVar47)" ( (binary_expression "dVar41 * dVar47" identifier * identifier) )) / identifier) + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33)" ( (cast_expression "(int)((ulonglong)uVar45 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar45 >> 0x20)" ( (binary_expression "(ulonglong)uVar45 >> 0x20" (cast_expression "(ulonglong)uVar45" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (binary_expression "iVar4 + 0x4ff8" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6174" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" ( (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));" (assignment_expression "uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ea4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ea4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ea4)" * (cast_expression "(code **)(puVar38 + 0x2b9ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ea4)" ( (binary_expression "puVar38 + 0x2b9ea4" identifier + number_literal) ))))) )) (argument_list "(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" ( identifier , (pointer_expression "*(undefined8 *)(iVar5 + 0x7ba0)" * (cast_expression "(undefined8 *)(iVar5 + 0x7ba0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))) )))) ;) (expression_statement "dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);" (assignment_expression "dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b910c))(uVar42)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b910c))(uVar42)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b910c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b910c)" * (pointer_expression "*(code **)(puVar38 + 0x2b910c)" * (cast_expression "(code **)(puVar38 + 0x2b910c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b910c)" ( (binary_expression "puVar38 + 0x2b910c" identifier + number_literal) ))))) )) (argument_list "(uVar42)" ( identifier ))))) ;) (expression_statement "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);" (assignment_expression "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" * (cast_expression "(code **)(puVar38 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b5c)" ( (binary_expression "puVar38 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(dVar46)" ( identifier ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar36 = (uint)dVar41;\n      }" { (expression_statement "uVar36 = (uint)dVar41;" (assignment_expression "uVar36 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);" (assignment_expression "dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier = (binary_expression "dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier / (pointer_expression "*(double *)(iVar5 + 0x7ba0)" * (cast_expression "(double *)(iVar5 + 0x7ba0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))))) ;) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar14 = (uint)dVar41;\n      }" { (expression_statement "uVar14 = (uint)dVar41;" (assignment_expression "uVar14 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" identifier = (binary_expression "(dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar46 - dVar47)" ( (binary_expression "dVar46 - dVar47" identifier - identifier) )) * (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar46 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar15 = (uint)dVar46;\n      }" { (expression_statement "uVar15 = (uint)dVar46;" (assignment_expression "uVar15 = (uint)dVar46" identifier = (cast_expression "(uint)dVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar46 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6140" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b942c))(0)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b942c))(0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b942c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b942c)" * (pointer_expression "*(code **)(puVar38 + 0x2b942c)" * (cast_expression "(code **)(puVar38 + 0x2b942c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b942c)" ( (binary_expression "puVar38 + 0x2b942c" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x611c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9978);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9978)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9978)" * (cast_expression "(code **)(puVar38 + 0x2b9978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9978)" ( (binary_expression "puVar38 + 0x2b9978" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" else (compound_statement "{\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" { (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b80))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b80)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b80)" * (cast_expression "(code **)(puVar38 + 0x2b9b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b80)" ( (binary_expression "puVar38 + 0x2b9b80" identifier + number_literal) ))))) )) (argument_list "(0x44,0,iVar4)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      pdStack_4198 = (double *)0x0;\n    }" { (expression_statement "pdStack_4198 = (double *)0x0;" (assignment_expression "pdStack_4198 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" else (compound_statement "{\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" { (expression_statement "pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);" (assignment_expression "pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" identifier = (cast_expression "(double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b982c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b982c)" * (pointer_expression "*(code **)(puVar38 + 0x2b982c)" * (cast_expression "(code **)(puVar38 + 0x2b982c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b982c)" ( (binary_expression "puVar38 + 0x2b982c" identifier + number_literal) ))))) )) (argument_list "(iVar6,0,10)" ( identifier , number_literal , number_literal ))))) ;) }))) (if_statement "if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }" if (parenthesized_expression "(piVar22[0xcdb] != -0x54535255)" ( (binary_expression "piVar22[0xcdb] != -0x54535255" (subscript_expression "piVar22[0xcdb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }" { (expression_statement "uVar21 = 0x90;" (assignment_expression "uVar21 = 0x90" identifier = number_literal) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9af4);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9af4)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" * (cast_expression "(code **)(puVar38 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9af4)" ( (binary_expression "puVar38 + 0x2b9af4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4" identifier = (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5ba4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);" statement_identifier : (expression_statement "uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);" (assignment_expression "uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" identifier = (call_expression "(*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x3784" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier )))) ;)) (return_statement "return uVar36;" return identifier ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b99f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b99f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" * (cast_expression "(code **)(puVar38 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99f8)" ( (binary_expression "puVar38 + 0x2b99f8" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }" if (parenthesized_expression "(piVar22[0xcd4] != 0)" ( (binary_expression "piVar22[0xcd4] != 0" (subscript_expression "piVar22[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }" { (expression_statement "(**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);" (call_expression "(**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96cc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b96cc)" * (pointer_expression "*(code **)(puVar38 + 0x2b96cc)" * (cast_expression "(code **)(puVar38 + 0x2b96cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b96cc)" ( (binary_expression "puVar38 + 0x2b96cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0)" ( number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "piVar22 + 0xd0" identifier + number_literal) ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b99f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b99f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" * (cast_expression "(code **)(puVar38 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99f8)" ( (binary_expression "puVar38 + 0x2b99f8" identifier + number_literal) ))))) ;) })) (expression_statement "puVar12 = (undefined *)(*pcVar40)(0x41,0x78);" (assignment_expression "puVar12 = (undefined *)(*pcVar40)(0x41,0x78)" identifier = (cast_expression "(undefined *)(*pcVar40)(0x41,0x78)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar40)(0x41,0x78)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x41,0x78)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }" if (parenthesized_expression "(puVar12 == (undefined *)0x0)" ( (binary_expression "puVar12 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b93d8))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b93d8))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b93d8))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93d8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93d8)" * (pointer_expression "*(code **)(puVar38 + 0x2b93d8)" * (cast_expression "(code **)(puVar38 + 0x2b93d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93d8)" ( (binary_expression "puVar38 + 0x2b93d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();" (assignment_expression "puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b9e9c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e9c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e9c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e9c)" * (cast_expression "(code **)(puVar38 + 0x2b9e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e9c)" ( (binary_expression "puVar38 + 0x2b9e9c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);" (assignment_expression "uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98d8))(*puVar11)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98d8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98d8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98d8)" * (cast_expression "(code **)(puVar38 + 0x2b98d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98d8)" ( (binary_expression "puVar38 + 0x2b98d8" identifier + number_literal) ))))) )) (argument_list "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b940c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b940c)" * (pointer_expression "*(code **)(puVar38 + 0x2b940c)" * (cast_expression "(code **)(puVar38 + 0x2b940c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b940c)" ( (binary_expression "puVar38 + 0x2b940c" identifier + number_literal) ))))) )) (argument_list "(uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x16f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x3e28" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uVar26)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b979c))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b979c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b979c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b979c)" * (pointer_expression "*(code **)(puVar38 + 0x2b979c)" * (cast_expression "(code **)(puVar38 + 0x2b979c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b979c)" ( (binary_expression "puVar38 + 0x2b979c" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b923c))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b923c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b923c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b923c)" * (pointer_expression "*(code **)(puVar38 + 0x2b923c)" * (cast_expression "(code **)(puVar38 + 0x2b923c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b923c)" ( (binary_expression "puVar38 + 0x2b923c" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9dd8))();" (call_expression "(**(code **)(puVar38 + 0x2b9dd8))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dd8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dd8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dd8)" * (cast_expression "(code **)(puVar38 + 0x2b9dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dd8)" ( (binary_expression "puVar38 + 0x2b9dd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b4c))(1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b4c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b4c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b4c)" * (cast_expression "(code **)(puVar38 + 0x2b9b4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b4c)" ( (binary_expression "puVar38 + 0x2b9b4c" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal )))) ;) (return_statement "return uVar36;" return identifier ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);" (call_expression "(**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9bc0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9bc0)" * (pointer_expression "*(code **)(puVar38 + 0x2b9bc0)" * (cast_expression "(code **)(puVar38 + 0x2b9bc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9bc0)" ( (binary_expression "puVar38 + 0x2b9bc0" identifier + number_literal) ))))) )) (argument_list "(puVar12,0,0x1e78)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "puVar13 = (undefined8 *)(puVar12 + 0x10);" (assignment_expression "puVar13 = (undefined8 *)(puVar12 + 0x10)" identifier = (cast_expression "(undefined8 *)(puVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) ;) (expression_statement "uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);" (assignment_expression "uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" * (cast_expression "(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);" (assignment_expression "uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" * (cast_expression "(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b60" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);" do (compound_statement "{\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    }" { (while_statement "while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }" while (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) )) (compound_statement "{\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }" { (expression_statement "puVar13[1] = uVar42;" (assignment_expression "puVar13[1] = uVar42" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar13 + 0xf;" (assignment_expression "puVar13 = puVar13 + 0xf" identifier = (binary_expression "puVar13 + 0xf" identifier + number_literal)) ;) (if_statement "if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;" if (parenthesized_expression "((undefined8 *)(puVar12 + 0x1e88) == puVar13)" ( (binary_expression "(undefined8 *)(puVar12 + 0x1e88) == puVar13" (cast_expression "(undefined8 *)(puVar12 + 0x1e88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x1e88)" ( (binary_expression "puVar12 + 0x1e88" identifier + number_literal) ))) == identifier) )) (goto_statement "goto LAB_000efcf0;" goto statement_identifier ;)) })) (expression_statement "*puVar13 = uVar45;" (assignment_expression "*puVar13 = uVar45" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar13 + 0xf;" (assignment_expression "puVar13 = puVar13 + 0xf" identifier = (binary_expression "puVar13 + 0xf" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined8 *)(puVar12 + 0x1e88) != puVar13)" ( (binary_expression "(undefined8 *)(puVar12 + 0x1e88) != puVar13" (cast_expression "(undefined8 *)(puVar12 + 0x1e88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x1e88)" ( (binary_expression "puVar12 + 0x1e88" identifier + number_literal) ))) != identifier) )) ;) (labeled_statement "LAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" statement_identifier : (if_statement "if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" if (parenthesized_expression "(0 < piVar22[7])" ( (binary_expression "0 < piVar22[7]" number_literal < (subscript_expression "piVar22[7]" identifier [ number_literal ])) )) (compound_statement "{\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);" (assignment_expression "uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x3708" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);" do (compound_statement "{\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      }" { (expression_statement "iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);" (assignment_expression "iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26)" identifier = (call_expression "(*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22,0,iVar7,iVar6,1,uVar26)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }" { (expression_statement "iVar29 = piVar22[0xb0];" (assignment_expression "iVar29 = piVar22[0xb0]" identifier = (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) ;) (expression_statement "piVar24 = (int *)piVar22[0xb4];" (assignment_expression "piVar24 = (int *)piVar22[0xb4]" identifier = (cast_expression "(int *)piVar22[0xb4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]))) ;) (expression_statement "iVar28 = piVar24[0x13];" (assignment_expression "iVar28 = piVar24[0x13]" identifier = (subscript_expression "piVar24[0x13]" identifier [ number_literal ])) ;) (do_statement "do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);" do (compound_statement "{\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          }" { (while_statement "while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }" while (parenthesized_expression "((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)))" ( (parenthesized_expression "(iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))" ( (comma_expression "iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" (assignment_expression "iVar27 = iVar8 + iVar29 * 4" identifier = (binary_expression "iVar8 + iVar29 * 4" identifier + (binary_expression "iVar29 * 4" identifier * number_literal))) , (binary_expression "iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" (binary_expression "iVar28 != 0" identifier != number_literal) && (parenthesized_expression "(*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" ( (binary_expression "*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48" (pointer_expression "*(float *)(iVar8 + piVar24[0x14] * 4)" * (cast_expression "(float *)(iVar8 + piVar24[0x14] * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + piVar24[0x14] * 4)" ( (binary_expression "iVar8 + piVar24[0x14] * 4" identifier + (binary_expression "piVar24[0x14] * 4" (subscript_expression "piVar24[0x14]" identifier [ number_literal ]) * number_literal)) )))) <= (cast_expression "(float)uVar48" ( (type_descriptor "float" primitive_type) ) identifier)) )))) )) )) (compound_statement "{\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar27;" (assignment_expression "iVar8 = iVar27" identifier = identifier) ;) (if_statement "if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }" if (parenthesized_expression "(iVar6 == iVar9)" ( (binary_expression "iVar6 == iVar9" identifier == identifier) )) (compound_statement "{\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }" { (expression_statement "iVar8 = piVar22[7];" (assignment_expression "iVar8 = piVar22[7]" identifier = (subscript_expression "piVar22[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000efe04;" goto statement_identifier ;) })) })) (if_statement "if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }" { (expression_statement "pfVar23 = (float *)(iVar27 + iVar29 * -4);" (assignment_expression "pfVar23 = (float *)(iVar27 + iVar29 * -4)" identifier = (cast_expression "(float *)(iVar27 + iVar29 * -4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + iVar29 * -4)" ( (binary_expression "iVar27 + iVar29 * -4" identifier + (binary_expression "iVar29 * -4" identifier * number_literal)) )))) ;) (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" identifier = identifier) ;) (labeled_statement "LAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);" statement_identifier : (do_statement "do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);" do (compound_statement "{\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              }" { (expression_statement "iVar8 = *piVar16;" (assignment_expression "iVar8 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (if_statement "if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }" if (parenthesized_expression "(piVar24[iVar8 * 3 + 1] != 0)" ( (binary_expression "piVar24[iVar8 * 3 + 1] != 0" (subscript_expression "piVar24[iVar8 * 3 + 1]" identifier [ (binary_expression "iVar8 * 3 + 1" (binary_expression "iVar8 * 3" identifier * number_literal) + number_literal) ]) != number_literal) )) (compound_statement "{\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }" { (expression_statement "dVar46 = (double)*pfVar23;" (assignment_expression "dVar46 = (double)*pfVar23" identifier = (cast_expression "(double)*pfVar23" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar23" * identifier))) ;) (if_statement "if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" if (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) )) (compound_statement "{\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }" { (if_statement "if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }" if (parenthesized_expression "(dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10))" ( (binary_expression "dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)" identifier < (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x10)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x10" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) ))))) )) (compound_statement "{\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }" { (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "*(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;" (assignment_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x10)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x10" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "pfVar23 = pfVar23 + 1;" (assignment_expression "pfVar23 = pfVar23 + 1" identifier = (binary_expression "pfVar23 + 1" identifier + number_literal)) ;) (if_statement "if (piVar24 + iVar29 * 3 == piVar16) break;" if (parenthesized_expression "(piVar24 + iVar29 * 3 == piVar16)" ( (binary_expression "piVar24 + iVar29 * 3 == piVar16" (binary_expression "piVar24 + iVar29 * 3" identifier + (binary_expression "iVar29 * 3" identifier * number_literal)) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000efd9c;" goto statement_identifier ;) })) }) (else_clause "else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" else (if_statement "if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" if (parenthesized_expression "(*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46)" ( (binary_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x18)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x18" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) )))) < identifier) )) (compound_statement "{\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" { (expression_statement "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;" (assignment_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x18)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x18" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) )))) = identifier) ;) })))) })) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "pfVar23 = pfVar23 + 1;" (assignment_expression "pfVar23 = pfVar23 + 1" identifier = (binary_expression "pfVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 + iVar29 * 3 != piVar16)" ( (binary_expression "piVar24 + iVar29 * 3 != piVar16" (binary_expression "piVar24 + iVar29 * 3" identifier + (binary_expression "iVar29 * 3" identifier * number_literal)) != identifier) )) ;)) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar27;" (assignment_expression "iVar8 = iVar27" identifier = identifier) ;) }) while (parenthesized_expression "(iVar6 != iVar9)" ( (binary_expression "iVar6 != iVar9" identifier != identifier) )) ;) })) (expression_statement "iVar8 = piVar22[7];" (assignment_expression "iVar8 = piVar22[7]" identifier = (subscript_expression "piVar22[7]" identifier [ number_literal ])) ;) (labeled_statement "LAB_000efe04:\n        iVar7 = iVar7 + 1;" statement_identifier : (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 < iVar8)" ( (binary_expression "iVar7 < iVar8" identifier < identifier) )) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (uVar36 < 0x22) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }" if (parenthesized_expression "(uVar36 < 0x22)" ( (binary_expression "uVar36 < 0x22" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }" { comment comment (expression_statement "uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ()" identifier = (call_expression "(*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ()" (parenthesized_expression "(*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))" ( (pointer_expression "*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" * (cast_expression "(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" ( (binary_expression "puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c" (binary_expression "puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x60b0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (if_statement "if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      iVar4 = piVar22[0xaf];\n    }" { (expression_statement "iVar4 = piVar22[0xaf];" (assignment_expression "iVar4 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" else (compound_statement "{\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (do_statement "do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);" do (compound_statement "{\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      }" { (expression_statement "FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);" (call_expression "FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12)" identifier (argument_list "(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12)" ( identifier , identifier , identifier , (binary_expression "iVar6 + -0x6ab0" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 < piVar22[0xb0])" ( (binary_expression "iVar4 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar4 = piVar22[0xaf];" (assignment_expression "iVar4 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }" { (expression_statement "FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );" (call_expression "FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  )" identifier (argument_list "(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  )" ( identifier , identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar40)(puVar12);" (call_expression "(*pcVar40)(puVar12)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9208))(puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9208))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9208)" * (pointer_expression "*(code **)(puVar38 + 0x2b9208)" * (cast_expression "(code **)(puVar38 + 0x2b9208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9208)" ( (binary_expression "puVar38 + 0x2b9208" identifier + number_literal) ))))) )) (argument_list "(puVar32)" ( identifier )))) ;) (if_statement "if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }" if (parenthesized_expression "(iStack_10c == *piVar10)" ( (binary_expression "iStack_10c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n    return (uint)(iVar4 == 0);\n  }" { (return_statement "return (uint)(iVar4 == 0);" return (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9550))();" (call_expression "(**(code **)(puVar38 + 0x2b9550))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9550))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9550)" * (pointer_expression "*(code **)(puVar38 + 0x2b9550)" * (cast_expression "(code **)(puVar38 + 0x2b9550)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9550)" ( (binary_expression "puVar38 + 0x2b9550" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);" statement_identifier : (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9af4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9af4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" * (cast_expression "(code **)(puVar38 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9af4)" ( (binary_expression "puVar38 + 0x2b9af4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0xdd0" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return uVar36;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "PixelChannel": 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 "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nssize_t PrintChannelMoments(FILE *file,PixelChannel channel,char *name,double scale,\n                           ChannelMoments *channel_moments)\n\n{\n  undefined1 uVar1;\n  longlong lVar2;\n  ChannelMoments *pCVar3;\n  undefined *puVar4;\n  ClassType *pCVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  StatisticType type;\n  char **ppcVar15;\n  ssize_t sVar16;\n  uint uVar17;\n  uint uVar18;\n  int *piVar19;\n  ImageType IVar20;\n  undefined8 *puVar21;\n  int iVar22;\n  int iVar23;\n  PixelInfo *pPVar24;\n  PixelInfo *pPVar25;\n  int iVar26;\n  PixelChannelMap *pPVar27;\n  ClassType *pCVar28;\n  Image *image;\n  undefined4 uVar29;\n  float *pfVar30;\n  PixelChannelMap *pPVar31;\n  uint uVar32;\n  char *pcVar33;\n  ClassType CVar34;\n  ClassType CVar35;\n  undefined4 uVar36;\n  size_t sVar37;\n  ChannelMoments *channel_moments_00;\n  ClassType CVar38;\n  int *piVar39;\n  size_t sVar40;\n  PixelTrait PVar41;\n  size_t sVar42;\n  PixelChannel PVar43;\n  double *pdVar44;\n  double *pdVar45;\n  FILE *file_00;\n  double *pdVar46;\n  double *pdVar47;\n  undefined1 *puVar48;\n  FILE *pFVar49;\n  ColorspaceType CVar50;\n  TimerInfo *pTVar51;\n  int iVar52;\n  PixelInfo *pPVar53;\n  char *pcVar54;\n  int iVar55;\n  undefined *puVar56;\n  undefined8 *puVar57;\n  int iVar58;\n  code *pcVar59;\n  double dVar60;\n  undefined8 uVar61;\n  double dVar62;\n  undefined8 uVar63;\n  double dVar64;\n  double dVar65;\n  double dVar66;\n  ulonglong uVar67;\n  double in_stack_00000010;\n  int in_stack_00000018;\n  undefined1 *puStack_4198;\n  ChannelFeatures *pCStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  ClassType aCStack_4168 [2];\n  ClassType aCStack_4160 [2];\n  undefined8 uStack_4158;\n  size_t sStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  char acStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  double *pdStack_100;\n  FILE *pFStack_fc;\n  FILE *pFStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  int iStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  double powers [8];\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  image = *(Image **)PTR___stack_chk_guard_003a9230;\n  puVar14 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  pdVar44 = powers;\n  do {\n    puVar6 = puVar14 + 4;\n    *(undefined4 *)pdVar44 = *puVar14;\n    uVar36 = puVar14[2];\n    uVar29 = puVar14[3];\n    *(undefined4 *)((int)pdVar44 + 4) = puVar14[1];\n    *(undefined4 *)(pdVar44 + 1) = uVar36;\n    *(undefined4 *)((int)pdVar44 + 0xc) = uVar29;\n    puVar14 = puVar6;\n    pdVar44 = pdVar44 + 2;\n  } while (puVar6 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar44 = (double *)(in_stack_00000018 + channel * 0x80);\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = pdVar44[9];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[10];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = pdVar44[0xb];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[0xc];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar44[0xd];\n  iVar10 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar44[0xe];\n  iVar11 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = in_stack_00000010 * pdVar44[0xf];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[0xf];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar12 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29);\n  iVar12 = iVar7 + iVar8 + iVar9 + iVar10 + iVar11 + iVar12;\n  dVar65 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  pFVar49 = (FILE *)(PTR_s_t_to_left_003a88e4 + -0x6e30);\n  iVar7 = 0;\n  pdVar46 = powers;\n  do {\n    dVar62 = in_stack_00000010;\n    pdVar47 = pdVar46 + 1;\n    pdVar45 = pdVar44 + 1;\n    uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar66 = *pdVar44;\n    in_stack_00000010 = dVar62;\n    dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46);\n    dVar66 = dVar66 / dVar60;\n    uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar44;\n    local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_);\n    iVar8 = iVar7 + 1;\n    dVar60 = (double)iVar7 + dVar65;\n    file_00 = pFVar49;\n    local_a8 = dVar66;\n    iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file);\n    iVar12 = iVar12 + iVar7;\n    pdVar44 = pdVar45;\n    iVar7 = iVar8;\n    pdVar46 = pdVar47;\n  } while (iVar8 != 8);\n  if (image == *(Image **)puVar4) {\n    return iVar12;\n  }\n  pcVar59 = IdentifyImage;\n  puVar56 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar36 = SUB84(dVar60,0);\n  piVar13 = *(int **)(puVar56 + 0x2b971c);\n  puStack_f0 = puVar4;\n  uStack_f4 = 8;\n  iStack_10c = *piVar13;\n  pdStack_108 = pdVar45;\n  iStack_104 = iVar8;\n  pdStack_100 = pdVar47;\n  pFStack_fc = file;\n  pFStack_f8 = pFVar49;\n  iStack_ec = iVar12;\n  uStack_e8 = uVar29;\n  pcStack_e4 = pcVar59;\n  dStack_e0 = dVar66;\n  dStack_d0 = dVar65;\n  if (image == (Image *)0x0) goto LAB_000f38b4;\n  if (image->signature != 0xabacadab) {\n    uVar29 = 0x213;\n    pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n    iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (image->debug == MagickFalse) {\n    puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n    if (file_00 == (FILE *)0x0) {\nLAB_000efed0:\n      file_00 = (FILE *)*puVar14;\n    }\n  }\n  else {\n    (**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);\n    if (file_00 == (FILE *)0x0) {\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  CVar50 = image->colorspace;\n  iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8);\n  if (iVar7 == 0) {\n    pTVar51 = &image->timer;\n    auStack_310d[1] = 0;\n    pcVar33 = image->filename;\n    dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51);\n    uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51);\n    (**(code **)(puVar56 + 0x2b9b54))(pTVar51);\n    pFVar49 = file_00;\n    if ((int)((ulonglong)dVar60 >> 0x20) == 0) {\n      pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }\n      iVar7 = (*pcVar59)(image);\n      sVar37 = image->scene;\n      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);\n      sVar42 = image->magick_columns;\n      sVar37 = image->magick_rows;\n      sVar40 = image->columns;\n      if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }\n      dVar60 = (double)(int)sVar40;\n      if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar62 = (double)(int)sVar37;\n      if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }\n      dVar60 = (double)(int)image->depth;\n      if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));\n      if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      uVar32 = image->total_colors;\n      if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }\n      dVar60 = (image->error).mean_error_per_pixel;\n      if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }\n      iVar8 = (int)image->extent;\n      iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }\n      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n    else {\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n  }\n  else {\n    type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);\n    iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);\n    if (iVar8 == 0) {\n      puStack_4198 = (undefined1 *)0x0;\n    }\n    else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }\n    if (image->signature != 0xabacadab) {\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    if (image->debug != MagickFalse) {\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }\n    pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);\n    if (pFVar49 == (FILE *)0x0) {\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }\n    (**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);\n    ppcVar15 = &pFVar49->_IO_write_base;\n    dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);\n    dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);\nLAB_000efcf0:\n    if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }\n    (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);\n    if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }\n    if ((int)image->number_channels < 1) {\n      PVar41 = image->alpha_trait;\n    }\n    else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }\n    if (PVar41 != UndefinedPixelTrait) {\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n  }\n  (*pcVar59)(pFVar49);\n  iVar7 = (**(code **)(puVar56 + 0x2b9208))(file_00);\n  if (iStack_10c == *piVar13) {\n    return (uint)(iVar7 == 0);\n  }\n  (**(code **)(puVar56 + 0x2b9550))();\nLAB_000f38b4:\n  sVar16 = (**(code **)(puVar56 + 0x2b9af4))\n                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c);\n  return sVar16;\n}\n\n" comment comment comment comment comment (function_definition "ssize_t PrintChannelMoments(FILE *file,PixelChannel channel,char *name,double scale,\n                           ChannelMoments *channel_moments)\n\n{\n  undefined1 uVar1;\n  longlong lVar2;\n  ChannelMoments *pCVar3;\n  undefined *puVar4;\n  ClassType *pCVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  StatisticType type;\n  char **ppcVar15;\n  ssize_t sVar16;\n  uint uVar17;\n  uint uVar18;\n  int *piVar19;\n  ImageType IVar20;\n  undefined8 *puVar21;\n  int iVar22;\n  int iVar23;\n  PixelInfo *pPVar24;\n  PixelInfo *pPVar25;\n  int iVar26;\n  PixelChannelMap *pPVar27;\n  ClassType *pCVar28;\n  Image *image;\n  undefined4 uVar29;\n  float *pfVar30;\n  PixelChannelMap *pPVar31;\n  uint uVar32;\n  char *pcVar33;\n  ClassType CVar34;\n  ClassType CVar35;\n  undefined4 uVar36;\n  size_t sVar37;\n  ChannelMoments *channel_moments_00;\n  ClassType CVar38;\n  int *piVar39;\n  size_t sVar40;\n  PixelTrait PVar41;\n  size_t sVar42;\n  PixelChannel PVar43;\n  double *pdVar44;\n  double *pdVar45;\n  FILE *file_00;\n  double *pdVar46;\n  double *pdVar47;\n  undefined1 *puVar48;\n  FILE *pFVar49;\n  ColorspaceType CVar50;\n  TimerInfo *pTVar51;\n  int iVar52;\n  PixelInfo *pPVar53;\n  char *pcVar54;\n  int iVar55;\n  undefined *puVar56;\n  undefined8 *puVar57;\n  int iVar58;\n  code *pcVar59;\n  double dVar60;\n  undefined8 uVar61;\n  double dVar62;\n  undefined8 uVar63;\n  double dVar64;\n  double dVar65;\n  double dVar66;\n  ulonglong uVar67;\n  double in_stack_00000010;\n  int in_stack_00000018;\n  undefined1 *puStack_4198;\n  ChannelFeatures *pCStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  ClassType aCStack_4168 [2];\n  ClassType aCStack_4160 [2];\n  undefined8 uStack_4158;\n  size_t sStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  char acStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  double *pdStack_100;\n  FILE *pFStack_fc;\n  FILE *pFStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  int iStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  double powers [8];\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  image = *(Image **)PTR___stack_chk_guard_003a9230;\n  puVar14 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  pdVar44 = powers;\n  do {\n    puVar6 = puVar14 + 4;\n    *(undefined4 *)pdVar44 = *puVar14;\n    uVar36 = puVar14[2];\n    uVar29 = puVar14[3];\n    *(undefined4 *)((int)pdVar44 + 4) = puVar14[1];\n    *(undefined4 *)(pdVar44 + 1) = uVar36;\n    *(undefined4 *)((int)pdVar44 + 0xc) = uVar29;\n    puVar14 = puVar6;\n    pdVar44 = pdVar44 + 2;\n  } while (puVar6 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar44 = (double *)(in_stack_00000018 + channel * 0x80);\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = pdVar44[9];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[10];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = pdVar44[0xb];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[0xc];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar44[0xd];\n  iVar10 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar44[0xe];\n  iVar11 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = in_stack_00000010 * pdVar44[0xf];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[0xf];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar12 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29);\n  iVar12 = iVar7 + iVar8 + iVar9 + iVar10 + iVar11 + iVar12;\n  dVar65 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  pFVar49 = (FILE *)(PTR_s_t_to_left_003a88e4 + -0x6e30);\n  iVar7 = 0;\n  pdVar46 = powers;\n  do {\n    dVar62 = in_stack_00000010;\n    pdVar47 = pdVar46 + 1;\n    pdVar45 = pdVar44 + 1;\n    uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar66 = *pdVar44;\n    in_stack_00000010 = dVar62;\n    dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46);\n    dVar66 = dVar66 / dVar60;\n    uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar44;\n    local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_);\n    iVar8 = iVar7 + 1;\n    dVar60 = (double)iVar7 + dVar65;\n    file_00 = pFVar49;\n    local_a8 = dVar66;\n    iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file);\n    iVar12 = iVar12 + iVar7;\n    pdVar44 = pdVar45;\n    iVar7 = iVar8;\n    pdVar46 = pdVar47;\n  } while (iVar8 != 8);\n  if (image == *(Image **)puVar4) {\n    return iVar12;\n  }\n  pcVar59 = IdentifyImage;\n  puVar56 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar36 = SUB84(dVar60,0);\n  piVar13 = *(int **)(puVar56 + 0x2b971c);\n  puStack_f0 = puVar4;\n  uStack_f4 = 8;\n  iStack_10c = *piVar13;\n  pdStack_108 = pdVar45;\n  iStack_104 = iVar8;\n  pdStack_100 = pdVar47;\n  pFStack_fc = file;\n  pFStack_f8 = pFVar49;\n  iStack_ec = iVar12;\n  uStack_e8 = uVar29;\n  pcStack_e4 = pcVar59;\n  dStack_e0 = dVar66;\n  dStack_d0 = dVar65;\n  if (image == (Image *)0x0) goto LAB_000f38b4;\n  if (image->signature != 0xabacadab) {\n    uVar29 = 0x213;\n    pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n    iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (image->debug == MagickFalse) {\n    puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n    if (file_00 == (FILE *)0x0) {\nLAB_000efed0:\n      file_00 = (FILE *)*puVar14;\n    }\n  }\n  else {\n    (**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);\n    if (file_00 == (FILE *)0x0) {\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  CVar50 = image->colorspace;\n  iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8);\n  if (iVar7 == 0) {\n    pTVar51 = &image->timer;\n    auStack_310d[1] = 0;\n    pcVar33 = image->filename;\n    dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51);\n    uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51);\n    (**(code **)(puVar56 + 0x2b9b54))(pTVar51);\n    pFVar49 = file_00;\n    if ((int)((ulonglong)dVar60 >> 0x20) == 0) {\n      pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }\n      iVar7 = (*pcVar59)(image);\n      sVar37 = image->scene;\n      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);\n      sVar42 = image->magick_columns;\n      sVar37 = image->magick_rows;\n      sVar40 = image->columns;\n      if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }\n      dVar60 = (double)(int)sVar40;\n      if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar62 = (double)(int)sVar37;\n      if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }\n      dVar60 = (double)(int)image->depth;\n      if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));\n      if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      uVar32 = image->total_colors;\n      if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }\n      dVar60 = (image->error).mean_error_per_pixel;\n      if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }\n      iVar8 = (int)image->extent;\n      iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }\n      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n    else {\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n  }\n  else {\n    type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);\n    iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);\n    if (iVar8 == 0) {\n      puStack_4198 = (undefined1 *)0x0;\n    }\n    else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }\n    if (image->signature != 0xabacadab) {\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    if (image->debug != MagickFalse) {\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }\n    pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);\n    if (pFVar49 == (FILE *)0x0) {\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }\n    (**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);\n    ppcVar15 = &pFVar49->_IO_write_base;\n    dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);\n    dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);\nLAB_000efcf0:\n    if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }\n    (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);\n    if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }\n    if ((int)image->number_channels < 1) {\n      PVar41 = image->alpha_trait;\n    }\n    else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }\n    if (PVar41 != UndefinedPixelTrait) {\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n  }\n  (*pcVar59)(pFVar49);\n  iVar7 = (**(code **)(puVar56 + 0x2b9208))(file_00);\n  if (iStack_10c == *piVar13) {\n    return (uint)(iVar7 == 0);\n  }\n  (**(code **)(puVar56 + 0x2b9550))();\nLAB_000f38b4:\n  sVar16 = (**(code **)(puVar56 + 0x2b9af4))\n                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c);\n  return sVar16;\n}" primitive_type (function_declarator "PrintChannelMoments(FILE *file,PixelChannel channel,char *name,double scale,\n                           ChannelMoments *channel_moments)" identifier (parameter_list "(FILE *file,PixelChannel channel,char *name,double scale,\n                           ChannelMoments *channel_moments)" ( (parameter_declaration "FILE *file" type_identifier (pointer_declarator "*file" * identifier)) , (parameter_declaration "PixelChannel channel" type_identifier identifier) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "double scale" primitive_type identifier) , (parameter_declaration "ChannelMoments *channel_moments" type_identifier (pointer_declarator "*channel_moments" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  longlong lVar2;\n  ChannelMoments *pCVar3;\n  undefined *puVar4;\n  ClassType *pCVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  StatisticType type;\n  char **ppcVar15;\n  ssize_t sVar16;\n  uint uVar17;\n  uint uVar18;\n  int *piVar19;\n  ImageType IVar20;\n  undefined8 *puVar21;\n  int iVar22;\n  int iVar23;\n  PixelInfo *pPVar24;\n  PixelInfo *pPVar25;\n  int iVar26;\n  PixelChannelMap *pPVar27;\n  ClassType *pCVar28;\n  Image *image;\n  undefined4 uVar29;\n  float *pfVar30;\n  PixelChannelMap *pPVar31;\n  uint uVar32;\n  char *pcVar33;\n  ClassType CVar34;\n  ClassType CVar35;\n  undefined4 uVar36;\n  size_t sVar37;\n  ChannelMoments *channel_moments_00;\n  ClassType CVar38;\n  int *piVar39;\n  size_t sVar40;\n  PixelTrait PVar41;\n  size_t sVar42;\n  PixelChannel PVar43;\n  double *pdVar44;\n  double *pdVar45;\n  FILE *file_00;\n  double *pdVar46;\n  double *pdVar47;\n  undefined1 *puVar48;\n  FILE *pFVar49;\n  ColorspaceType CVar50;\n  TimerInfo *pTVar51;\n  int iVar52;\n  PixelInfo *pPVar53;\n  char *pcVar54;\n  int iVar55;\n  undefined *puVar56;\n  undefined8 *puVar57;\n  int iVar58;\n  code *pcVar59;\n  double dVar60;\n  undefined8 uVar61;\n  double dVar62;\n  undefined8 uVar63;\n  double dVar64;\n  double dVar65;\n  double dVar66;\n  ulonglong uVar67;\n  double in_stack_00000010;\n  int in_stack_00000018;\n  undefined1 *puStack_4198;\n  ChannelFeatures *pCStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  ClassType aCStack_4168 [2];\n  ClassType aCStack_4160 [2];\n  undefined8 uStack_4158;\n  size_t sStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  char acStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  double *pdStack_100;\n  FILE *pFStack_fc;\n  FILE *pFStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  int iStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  double powers [8];\n  \n  puVar4 = PTR___stack_chk_guard_003a9230;\n  image = *(Image **)PTR___stack_chk_guard_003a9230;\n  puVar14 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  pdVar44 = powers;\n  do {\n    puVar6 = puVar14 + 4;\n    *(undefined4 *)pdVar44 = *puVar14;\n    uVar36 = puVar14[2];\n    uVar29 = puVar14[3];\n    *(undefined4 *)((int)pdVar44 + 4) = puVar14[1];\n    *(undefined4 *)(pdVar44 + 1) = uVar36;\n    *(undefined4 *)((int)pdVar44 + 0xc) = uVar29;\n    puVar14 = puVar6;\n    pdVar44 = pdVar44 + 2;\n  } while (puVar6 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar44 = (double *)(in_stack_00000018 + channel * 0x80);\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = pdVar44[9];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[10];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = pdVar44[0xb];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[0xc];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar44[0xd];\n  iVar10 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar44[0xe];\n  iVar11 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29);\n  uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar65 = in_stack_00000010 * pdVar44[0xf];\n  uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar44[0xf];\n  local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);\n  local_b0 = dVar65;\n  iVar12 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29);\n  iVar12 = iVar7 + iVar8 + iVar9 + iVar10 + iVar11 + iVar12;\n  dVar65 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  pFVar49 = (FILE *)(PTR_s_t_to_left_003a88e4 + -0x6e30);\n  iVar7 = 0;\n  pdVar46 = powers;\n  do {\n    dVar62 = in_stack_00000010;\n    pdVar47 = pdVar46 + 1;\n    pdVar45 = pdVar44 + 1;\n    uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar66 = *pdVar44;\n    in_stack_00000010 = dVar62;\n    dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46);\n    dVar66 = dVar66 / dVar60;\n    uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar44;\n    local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_);\n    iVar8 = iVar7 + 1;\n    dVar60 = (double)iVar7 + dVar65;\n    file_00 = pFVar49;\n    local_a8 = dVar66;\n    iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file);\n    iVar12 = iVar12 + iVar7;\n    pdVar44 = pdVar45;\n    iVar7 = iVar8;\n    pdVar46 = pdVar47;\n  } while (iVar8 != 8);\n  if (image == *(Image **)puVar4) {\n    return iVar12;\n  }\n  pcVar59 = IdentifyImage;\n  puVar56 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar36 = SUB84(dVar60,0);\n  piVar13 = *(int **)(puVar56 + 0x2b971c);\n  puStack_f0 = puVar4;\n  uStack_f4 = 8;\n  iStack_10c = *piVar13;\n  pdStack_108 = pdVar45;\n  iStack_104 = iVar8;\n  pdStack_100 = pdVar47;\n  pFStack_fc = file;\n  pFStack_f8 = pFVar49;\n  iStack_ec = iVar12;\n  uStack_e8 = uVar29;\n  pcStack_e4 = pcVar59;\n  dStack_e0 = dVar66;\n  dStack_d0 = dVar65;\n  if (image == (Image *)0x0) goto LAB_000f38b4;\n  if (image->signature != 0xabacadab) {\n    uVar29 = 0x213;\n    pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n    iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (image->debug == MagickFalse) {\n    puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n    if (file_00 == (FILE *)0x0) {\nLAB_000efed0:\n      file_00 = (FILE *)*puVar14;\n    }\n  }\n  else {\n    (**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);\n    if (file_00 == (FILE *)0x0) {\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  CVar50 = image->colorspace;\n  iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8);\n  if (iVar7 == 0) {\n    pTVar51 = &image->timer;\n    auStack_310d[1] = 0;\n    pcVar33 = image->filename;\n    dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51);\n    uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51);\n    (**(code **)(puVar56 + 0x2b9b54))(pTVar51);\n    pFVar49 = file_00;\n    if ((int)((ulonglong)dVar60 >> 0x20) == 0) {\n      pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }\n      iVar7 = (*pcVar59)(image);\n      sVar37 = image->scene;\n      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);\n      sVar42 = image->magick_columns;\n      sVar37 = image->magick_rows;\n      sVar40 = image->columns;\n      if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }\n      dVar60 = (double)(int)sVar40;\n      if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar62 = (double)(int)sVar37;\n      if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }\n      dVar60 = (double)(int)image->depth;\n      if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));\n      if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      uVar32 = image->total_colors;\n      if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }\n      dVar60 = (image->error).mean_error_per_pixel;\n      if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }\n      iVar8 = (int)image->extent;\n      iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }\n      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n    else {\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n  }\n  else {\n    type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);\n    iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);\n    if (iVar8 == 0) {\n      puStack_4198 = (undefined1 *)0x0;\n    }\n    else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }\n    if (image->signature != 0xabacadab) {\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    if (image->debug != MagickFalse) {\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }\n    pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);\n    if (pFVar49 == (FILE *)0x0) {\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }\n    (**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);\n    ppcVar15 = &pFVar49->_IO_write_base;\n    dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);\n    dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);\nLAB_000efcf0:\n    if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }\n    (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);\n    if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }\n    if ((int)image->number_channels < 1) {\n      PVar41 = image->alpha_trait;\n    }\n    else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }\n    if (PVar41 != UndefinedPixelTrait) {\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n  }\n  (*pcVar59)(pFVar49);\n  iVar7 = (**(code **)(puVar56 + 0x2b9208))(file_00);\n  if (iStack_10c == *piVar13) {\n    return (uint)(iVar7 == 0);\n  }\n  (**(code **)(puVar56 + 0x2b9550))();\nLAB_000f38b4:\n  sVar16 = (**(code **)(puVar56 + 0x2b9af4))\n                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c);\n  return sVar16;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "ChannelMoments *pCVar3;" type_identifier (pointer_declarator "*pCVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ClassType *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "StatisticType type;" type_identifier identifier ;) (declaration "char **ppcVar15;" primitive_type (pointer_declarator "**ppcVar15" * (pointer_declarator "*ppcVar15" * identifier)) ;) (declaration "ssize_t sVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "ImageType IVar20;" type_identifier identifier ;) (declaration "undefined8 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "PixelInfo *pPVar24;" type_identifier (pointer_declarator "*pPVar24" * identifier) ;) (declaration "PixelInfo *pPVar25;" type_identifier (pointer_declarator "*pPVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar27;" type_identifier (pointer_declarator "*pPVar27" * identifier) ;) (declaration "ClassType *pCVar28;" type_identifier (pointer_declarator "*pCVar28" * identifier) ;) (declaration "Image *image;" type_identifier (pointer_declarator "*image" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "float *pfVar30;" primitive_type (pointer_declarator "*pfVar30" * identifier) ;) (declaration "PixelChannelMap *pPVar31;" type_identifier (pointer_declarator "*pPVar31" * identifier) ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "char *pcVar33;" primitive_type (pointer_declarator "*pcVar33" * identifier) ;) (declaration "ClassType CVar34;" type_identifier identifier ;) (declaration "ClassType CVar35;" type_identifier identifier ;) (declaration "undefined4 uVar36;" type_identifier identifier ;) (declaration "size_t sVar37;" primitive_type identifier ;) (declaration "ChannelMoments *channel_moments_00;" type_identifier (pointer_declarator "*channel_moments_00" * identifier) ;) (declaration "ClassType CVar38;" type_identifier identifier ;) (declaration "int *piVar39;" primitive_type (pointer_declarator "*piVar39" * identifier) ;) (declaration "size_t sVar40;" primitive_type identifier ;) (declaration "PixelTrait PVar41;" type_identifier identifier ;) (declaration "size_t sVar42;" primitive_type identifier ;) (declaration "PixelChannel PVar43;" type_identifier identifier ;) (declaration "double *pdVar44;" primitive_type (pointer_declarator "*pdVar44" * identifier) ;) (declaration "double *pdVar45;" primitive_type (pointer_declarator "*pdVar45" * identifier) ;) (declaration "FILE *file_00;" type_identifier (pointer_declarator "*file_00" * identifier) ;) (declaration "double *pdVar46;" primitive_type (pointer_declarator "*pdVar46" * identifier) ;) (declaration "double *pdVar47;" primitive_type (pointer_declarator "*pdVar47" * identifier) ;) (declaration "undefined1 *puVar48;" type_identifier (pointer_declarator "*puVar48" * identifier) ;) (declaration "FILE *pFVar49;" type_identifier (pointer_declarator "*pFVar49" * identifier) ;) (declaration "ColorspaceType CVar50;" type_identifier identifier ;) (declaration "TimerInfo *pTVar51;" type_identifier (pointer_declarator "*pTVar51" * identifier) ;) (declaration "int iVar52;" primitive_type identifier ;) (declaration "PixelInfo *pPVar53;" type_identifier (pointer_declarator "*pPVar53" * identifier) ;) (declaration "char *pcVar54;" primitive_type (pointer_declarator "*pcVar54" * identifier) ;) (declaration "int iVar55;" primitive_type identifier ;) (declaration "undefined *puVar56;" type_identifier (pointer_declarator "*puVar56" * identifier) ;) (declaration "undefined8 *puVar57;" type_identifier (pointer_declarator "*puVar57" * identifier) ;) (declaration "int iVar58;" primitive_type identifier ;) (declaration "code *pcVar59;" type_identifier (pointer_declarator "*pcVar59" * identifier) ;) (declaration "double dVar60;" primitive_type identifier ;) (declaration "undefined8 uVar61;" type_identifier identifier ;) (declaration "double dVar62;" primitive_type identifier ;) (declaration "undefined8 uVar63;" type_identifier identifier ;) (declaration "double dVar64;" primitive_type identifier ;) (declaration "double dVar65;" primitive_type identifier ;) (declaration "double dVar66;" primitive_type identifier ;) (declaration "ulonglong uVar67;" type_identifier identifier ;) (declaration "double in_stack_00000010;" primitive_type identifier ;) (declaration "int in_stack_00000018;" primitive_type identifier ;) (declaration "undefined1 *puStack_4198;" type_identifier (pointer_declarator "*puStack_4198" * identifier) ;) (declaration "ChannelFeatures *pCStack_4190;" type_identifier (pointer_declarator "*pCStack_4190" * identifier) ;) (declaration "int iStack_418c;" primitive_type identifier ;) (declaration "int iStack_4180;" primitive_type identifier ;) (declaration "undefined4 uStack_416c;" type_identifier identifier ;) (declaration "ClassType aCStack_4168 [2];" type_identifier (array_declarator "aCStack_4168 [2]" identifier [ number_literal ]) ;) (declaration "ClassType aCStack_4160 [2];" type_identifier (array_declarator "aCStack_4160 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_4158;" type_identifier identifier ;) (declaration "size_t sStack_4150;" primitive_type identifier ;) (declaration "double dStack_4140;" primitive_type identifier ;) (declaration "double dStack_4138;" primitive_type identifier ;) (declaration "double dStack_4130;" primitive_type identifier ;) (declaration "double dStack_4128;" primitive_type identifier ;) (declaration "double dStack_4120;" primitive_type identifier ;) (declaration "double dStack_4118;" primitive_type identifier ;) (declaration "undefined1 auStack_410c [4095];" type_identifier (array_declarator "auStack_410c [4095]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_310d [4097];" type_identifier (array_declarator "auStack_310d [4097]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_210c [4096];" type_identifier (array_declarator "auStack_210c [4096]" identifier [ number_literal ]) ;) (declaration "char acStack_110c [4096];" primitive_type (array_declarator "acStack_110c [4096]" identifier [ number_literal ]) ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "double *pdStack_108;" primitive_type (pointer_declarator "*pdStack_108" * identifier) ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "double *pdStack_100;" primitive_type (pointer_declarator "*pdStack_100" * identifier) ;) (declaration "FILE *pFStack_fc;" type_identifier (pointer_declarator "*pFStack_fc" * identifier) ;) (declaration "FILE *pFStack_f8;" type_identifier (pointer_declarator "*pFStack_f8" * identifier) ;) (declaration "undefined4 uStack_f4;" type_identifier identifier ;) (declaration "undefined *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "double dStack_e0;" primitive_type identifier ;) (declaration "double dStack_d0;" primitive_type identifier ;) (declaration "double local_b0;" primitive_type identifier ;) (declaration "double local_a8;" primitive_type identifier ;) (declaration "double local_a0;" primitive_type identifier ;) (declaration "double local_98;" primitive_type identifier ;) (declaration "double powers [8];" primitive_type (array_declarator "powers [8]" identifier [ number_literal ]) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar4 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "image = *(Image **)PTR___stack_chk_guard_003a9230;" (assignment_expression "image = *(Image **)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(Image **)PTR___stack_chk_guard_003a9230" * (cast_expression "(Image **)PTR___stack_chk_guard_003a9230" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar14 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);" (assignment_expression "puVar14 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" identifier = (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60f0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60f0" identifier + number_literal) )))) ;) (expression_statement "pdVar44 = powers;" (assignment_expression "pdVar44 = powers" identifier = identifier) ;) (do_statement "do {\n    puVar6 = puVar14 + 4;\n    *(undefined4 *)pdVar44 = *puVar14;\n    uVar36 = puVar14[2];\n    uVar29 = puVar14[3];\n    *(undefined4 *)((int)pdVar44 + 4) = puVar14[1];\n    *(undefined4 *)(pdVar44 + 1) = uVar36;\n    *(undefined4 *)((int)pdVar44 + 0xc) = uVar29;\n    puVar14 = puVar6;\n    pdVar44 = pdVar44 + 2;\n  } while (puVar6 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));" do (compound_statement "{\n    puVar6 = puVar14 + 4;\n    *(undefined4 *)pdVar44 = *puVar14;\n    uVar36 = puVar14[2];\n    uVar29 = puVar14[3];\n    *(undefined4 *)((int)pdVar44 + 4) = puVar14[1];\n    *(undefined4 *)(pdVar44 + 1) = uVar36;\n    *(undefined4 *)((int)pdVar44 + 0xc) = uVar29;\n    puVar14 = puVar6;\n    pdVar44 = pdVar44 + 2;\n  }" { (expression_statement "puVar6 = puVar14 + 4;" (assignment_expression "puVar6 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pdVar44 = *puVar14;" (assignment_expression "*(undefined4 *)pdVar44 = *puVar14" (pointer_expression "*(undefined4 *)pdVar44" * (cast_expression "(undefined4 *)pdVar44" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar36 = puVar14[2];" (assignment_expression "uVar36 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar29 = puVar14[3];" (assignment_expression "uVar29 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)pdVar44 + 4) = puVar14[1];" (assignment_expression "*(undefined4 *)((int)pdVar44 + 4) = puVar14[1]" (pointer_expression "*(undefined4 *)((int)pdVar44 + 4)" * (cast_expression "(undefined4 *)((int)pdVar44 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar44 + 4)" ( (binary_expression "(int)pdVar44 + 4" (cast_expression "(int)pdVar44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pdVar44 + 1) = uVar36;" (assignment_expression "*(undefined4 *)(pdVar44 + 1) = uVar36" (pointer_expression "*(undefined4 *)(pdVar44 + 1)" * (cast_expression "(undefined4 *)(pdVar44 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar44 + 1)" ( (binary_expression "pdVar44 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pdVar44 + 0xc) = uVar29;" (assignment_expression "*(undefined4 *)((int)pdVar44 + 0xc) = uVar29" (pointer_expression "*(undefined4 *)((int)pdVar44 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar44 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar44 + 0xc)" ( (binary_expression "(int)pdVar44 + 0xc" (cast_expression "(int)pdVar44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar14 = puVar6;" (assignment_expression "puVar14 = puVar6" identifier = identifier) ;) (expression_statement "pdVar44 = pdVar44 + 2;" (assignment_expression "pdVar44 = pdVar44 + 2" identifier = (binary_expression "pdVar44 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar6 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0))" ( (binary_expression "puVar6 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" identifier != (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60b0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60b0" identifier + number_literal) )))) )) ;) (expression_statement "pdVar44 = (double *)(in_stack_00000018 + channel * 0x80);" (assignment_expression "pdVar44 = (double *)(in_stack_00000018 + channel * 0x80)" identifier = (cast_expression "(double *)(in_stack_00000018 + channel * 0x80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_stack_00000018 + channel * 0x80)" ( (binary_expression "in_stack_00000018 + channel * 0x80" identifier + (binary_expression "channel * 0x80" identifier * number_literal)) )))) ;) (expression_statement "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ef0);" (assignment_expression "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ef0)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ef0)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(file,PTR_s_t_to_left_003a88e4 + -0x6ef0)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ef0" identifier + number_literal) )))) ;) (expression_statement "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar65 = pdVar44[9];" (assignment_expression "dVar65 = pdVar44[9]" identifier = (subscript_expression "pdVar44[9]" identifier [ number_literal ])) ;) (expression_statement "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar44[10];" (assignment_expression "local_a0 = pdVar44[10]" identifier = (subscript_expression "pdVar44[10]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar36,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar36,local_a8._4_4_)" identifier (argument_list "(uVar36,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar65;" (assignment_expression "local_b0 = dVar65" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29);" (assignment_expression "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(file,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar29)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ee4" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar65 = pdVar44[0xb];" (assignment_expression "dVar65 = pdVar44[0xb]" identifier = (subscript_expression "pdVar44[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar44[0xc];" (assignment_expression "local_a0 = pdVar44[0xc]" identifier = (subscript_expression "pdVar44[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar36,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar36,local_a8._4_4_)" identifier (argument_list "(uVar36,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar65;" (assignment_expression "local_b0 = dVar65" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29);" (assignment_expression "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(file,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar29)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ec8" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_b0 = pdVar44[0xd];" (assignment_expression "local_b0 = pdVar44[0xd]" identifier = (subscript_expression "pdVar44[0xd]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29);" (assignment_expression "iVar10 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(file,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar29)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e98" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_b0 = pdVar44[0xe];" (assignment_expression "local_b0 = pdVar44[0xe]" identifier = (subscript_expression "pdVar44[0xe]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29);" (assignment_expression "iVar11 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(file,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar29)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e7c" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar65 = in_stack_00000010 * pdVar44[0xf];" (assignment_expression "dVar65 = in_stack_00000010 * pdVar44[0xf]" identifier = (binary_expression "in_stack_00000010 * pdVar44[0xf]" identifier * (subscript_expression "pdVar44[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar44[0xf];" (assignment_expression "local_a0 = pdVar44[0xf]" identifier = (subscript_expression "pdVar44[0xf]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar36,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar36,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar36,local_a8._4_4_)" identifier (argument_list "(uVar36,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar65;" (assignment_expression "local_b0 = dVar65" identifier = identifier) ;) (expression_statement "iVar12 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29);" (assignment_expression "iVar12 = (*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(file,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar29)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e58" identifier + number_literal) , identifier )))) ;) (expression_statement "iVar12 = iVar7 + iVar8 + iVar9 + iVar10 + iVar11 + iVar12;" (assignment_expression "iVar12 = iVar7 + iVar8 + iVar9 + iVar10 + iVar11 + iVar12" identifier = (binary_expression "iVar7 + iVar8 + iVar9 + iVar10 + iVar11 + iVar12" (binary_expression "iVar7 + iVar8 + iVar9 + iVar10 + iVar11" (binary_expression "iVar7 + iVar8 + iVar9 + iVar10" (binary_expression "iVar7 + iVar8 + iVar9" (binary_expression "iVar7 + iVar8" identifier + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "dVar65 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar65 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "pFVar49 = (FILE *)(PTR_s_t_to_left_003a88e4 + -0x6e30);" (assignment_expression "pFVar49 = (FILE *)(PTR_s_t_to_left_003a88e4 + -0x6e30)" identifier = (cast_expression "(FILE *)(PTR_s_t_to_left_003a88e4 + -0x6e30)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x6e30)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e30" identifier + number_literal) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "pdVar46 = powers;" (assignment_expression "pdVar46 = powers" identifier = identifier) ;) (do_statement "do {\n    dVar62 = in_stack_00000010;\n    pdVar47 = pdVar46 + 1;\n    pdVar45 = pdVar44 + 1;\n    uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar66 = *pdVar44;\n    in_stack_00000010 = dVar62;\n    dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46);\n    dVar66 = dVar66 / dVar60;\n    uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar44;\n    local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_);\n    iVar8 = iVar7 + 1;\n    dVar60 = (double)iVar7 + dVar65;\n    file_00 = pFVar49;\n    local_a8 = dVar66;\n    iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file);\n    iVar12 = iVar12 + iVar7;\n    pdVar44 = pdVar45;\n    iVar7 = iVar8;\n    pdVar46 = pdVar47;\n  } while (iVar8 != 8);" do (compound_statement "{\n    dVar62 = in_stack_00000010;\n    pdVar47 = pdVar46 + 1;\n    pdVar45 = pdVar44 + 1;\n    uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar66 = *pdVar44;\n    in_stack_00000010 = dVar62;\n    dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46);\n    dVar66 = dVar66 / dVar60;\n    uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar44;\n    local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_);\n    iVar8 = iVar7 + 1;\n    dVar60 = (double)iVar7 + dVar65;\n    file_00 = pFVar49;\n    local_a8 = dVar66;\n    iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file);\n    iVar12 = iVar12 + iVar7;\n    pdVar44 = pdVar45;\n    iVar7 = iVar8;\n    pdVar46 = pdVar47;\n  }" { (expression_statement "dVar62 = in_stack_00000010;" (assignment_expression "dVar62 = in_stack_00000010" identifier = identifier) ;) (expression_statement "pdVar47 = pdVar46 + 1;" (assignment_expression "pdVar47 = pdVar46 + 1" identifier = (binary_expression "pdVar46 + 1" identifier + number_literal)) ;) (expression_statement "pdVar45 = pdVar44 + 1;" (assignment_expression "pdVar45 = pdVar44 + 1" identifier = (binary_expression "pdVar44 + 1" identifier + number_literal)) ;) (expression_statement "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar29 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar66 = *pdVar44;" (assignment_expression "dVar66 = *pdVar44" identifier = (pointer_expression "*pdVar44" * identifier)) ;) (expression_statement "in_stack_00000010 = dVar62;" (assignment_expression "in_stack_00000010 = dVar62" identifier = identifier) ;) (expression_statement "dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46);" (assignment_expression "dVar60 = (double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46)" identifier = (cast_expression "(double)(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_pow_003a971c)(dVar62,*pdVar46)" (parenthesized_expression "(*(code *)PTR_pow_003a971c)" ( (pointer_expression "*(code *)PTR_pow_003a971c" * (cast_expression "(code *)PTR_pow_003a971c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar62,*pdVar46)" ( identifier , (pointer_expression "*pdVar46" * identifier) ))))) ;) (expression_statement "dVar66 = dVar66 / dVar60;" (assignment_expression "dVar66 = dVar66 / dVar60" identifier = (binary_expression "dVar66 / dVar60" identifier / identifier)) ;) (expression_statement "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar36 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_98 = *pdVar44;" (assignment_expression "local_98 = *pdVar44" identifier = (pointer_expression "*pdVar44" * identifier)) ;) (expression_statement "local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_);" (assignment_expression "local_a0 = (double)CONCAT44(uVar36,local_a0._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar36,local_a0._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar36,local_a0._4_4_)" identifier (argument_list "(uVar36,local_a0._4_4_)" ( identifier , (field_expression "local_a0._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_);" (assignment_expression "local_b0 = (double)CONCAT44(uVar29,local_b0._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar29,local_b0._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar29,local_b0._4_4_)" identifier (argument_list "(uVar29,local_b0._4_4_)" ( identifier , (field_expression "local_b0._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "iVar8 = iVar7 + 1;" (assignment_expression "iVar8 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "dVar60 = (double)iVar7 + dVar65;" (assignment_expression "dVar60 = (double)iVar7 + dVar65" identifier = (binary_expression "(double)iVar7 + dVar65" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (expression_statement "file_00 = pFVar49;" (assignment_expression "file_00 = pFVar49" identifier = identifier) ;) (expression_statement "local_a8 = dVar66;" (assignment_expression "local_a8 = dVar66" identifier = identifier) ;) (expression_statement "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file);" (assignment_expression "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)(file)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(file)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(file)" ( identifier )))) ;) (expression_statement "iVar12 = iVar12 + iVar7;" (assignment_expression "iVar12 = iVar12 + iVar7" identifier = (binary_expression "iVar12 + iVar7" identifier + identifier)) ;) (expression_statement "pdVar44 = pdVar45;" (assignment_expression "pdVar44 = pdVar45" identifier = identifier) ;) (expression_statement "iVar7 = iVar8;" (assignment_expression "iVar7 = iVar8" identifier = identifier) ;) (expression_statement "pdVar46 = pdVar47;" (assignment_expression "pdVar46 = pdVar47" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 != 8)" ( (binary_expression "iVar8 != 8" identifier != number_literal) )) ;) (if_statement "if (image == *(Image **)puVar4) {\n    return iVar12;\n  }" if (parenthesized_expression "(image == *(Image **)puVar4)" ( (binary_expression "image == *(Image **)puVar4" identifier == (pointer_expression "*(Image **)puVar4" * (cast_expression "(Image **)puVar4" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) })) (expression_statement "pcVar59 = IdentifyImage;" (assignment_expression "pcVar59 = IdentifyImage" identifier = identifier) ;) (expression_statement "puVar56 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar56 = 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 "uVar36 = SUB84(dVar60,0);" (assignment_expression "uVar36 = SUB84(dVar60,0)" identifier = (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal )))) ;) (expression_statement "piVar13 = *(int **)(puVar56 + 0x2b971c);" (assignment_expression "piVar13 = *(int **)(puVar56 + 0x2b971c)" identifier = (pointer_expression "*(int **)(puVar56 + 0x2b971c)" * (cast_expression "(int **)(puVar56 + 0x2b971c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b971c)" ( (binary_expression "puVar56 + 0x2b971c" identifier + number_literal) ))))) ;) (expression_statement "puStack_f0 = puVar4;" (assignment_expression "puStack_f0 = puVar4" identifier = identifier) ;) (expression_statement "uStack_f4 = 8;" (assignment_expression "uStack_f4 = 8" identifier = number_literal) ;) (expression_statement "iStack_10c = *piVar13;" (assignment_expression "iStack_10c = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "pdStack_108 = pdVar45;" (assignment_expression "pdStack_108 = pdVar45" identifier = identifier) ;) (expression_statement "iStack_104 = iVar8;" (assignment_expression "iStack_104 = iVar8" identifier = identifier) ;) (expression_statement "pdStack_100 = pdVar47;" (assignment_expression "pdStack_100 = pdVar47" identifier = identifier) ;) (expression_statement "pFStack_fc = file;" (assignment_expression "pFStack_fc = file" identifier = identifier) ;) (expression_statement "pFStack_f8 = pFVar49;" (assignment_expression "pFStack_f8 = pFVar49" identifier = identifier) ;) (expression_statement "iStack_ec = iVar12;" (assignment_expression "iStack_ec = iVar12" identifier = identifier) ;) (expression_statement "uStack_e8 = uVar29;" (assignment_expression "uStack_e8 = uVar29" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar59;" (assignment_expression "pcStack_e4 = pcVar59" identifier = identifier) ;) (expression_statement "dStack_e0 = dVar66;" (assignment_expression "dStack_e0 = dVar66" identifier = identifier) ;) (expression_statement "dStack_d0 = dVar65;" (assignment_expression "dStack_d0 = dVar65" identifier = identifier) ;) (if_statement "if (image == (Image *)0x0) goto LAB_000f38b4;" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f38b4;" goto statement_identifier ;)) (if_statement "if (image->signature != 0xabacadab) {\n    uVar29 = 0x213;\n    pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n    iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    uVar29 = 0x213;\n    pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n    iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" { (expression_statement "uVar29 = 0x213;" (assignment_expression "uVar29 = 0x213" identifier = number_literal) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9af4);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9af4)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9af4)" * (cast_expression "(code **)(puVar56 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9af4)" ( (binary_expression "puVar56 + 0x2b9af4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c;" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5b7c" identifier = (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000f38e8;" goto statement_identifier ;) })) (if_statement "if (image->debug == MagickFalse) {\n    puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n    if (file_00 == (FILE *)0x0) {\nLAB_000efed0:\n      file_00 = (FILE *)*puVar14;\n    }\n  }\n  else {\n    (**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);\n    if (file_00 == (FILE *)0x0) {\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" if (parenthesized_expression "(image->debug == MagickFalse)" ( (binary_expression "image->debug == MagickFalse" (field_expression "image->debug" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n    if (file_00 == (FILE *)0x0) {\nLAB_000efed0:\n      file_00 = (FILE *)*puVar14;\n    }\n  }" { (expression_statement "puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);" (assignment_expression "puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0)" identifier = (pointer_expression "*(undefined4 **)(puVar56 + 0x2b93d0)" * (cast_expression "(undefined4 **)(puVar56 + 0x2b93d0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93d0)" ( (binary_expression "puVar56 + 0x2b93d0" identifier + number_literal) ))))) ;) (if_statement "if (file_00 == (FILE *)0x0) {\nLAB_000efed0:\n      file_00 = (FILE *)*puVar14;\n    }" if (parenthesized_expression "(file_00 == (FILE *)0x0)" ( (binary_expression "file_00 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000efed0:\n      file_00 = (FILE *)*puVar14;\n    }" { (labeled_statement "LAB_000efed0:\n      file_00 = (FILE *)*puVar14;" statement_identifier : (expression_statement "file_00 = (FILE *)*puVar14;" (assignment_expression "file_00 = (FILE *)*puVar14" identifier = (cast_expression "(FILE *)*puVar14" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;)) })) }) (else_clause "else {\n    (**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);\n    if (file_00 == (FILE *)0x0) {\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" else (compound_statement "{\n    (**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);\n    if (file_00 == (FILE *)0x0) {\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" { (expression_statement "(**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename);" (call_expression "(**(code **)(puVar56 + 0x2b96cc))\n              (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b96cc))" ( (pointer_expression "**(code **)(puVar56 + 0x2b96cc)" * (pointer_expression "*(code **)(puVar56 + 0x2b96cc)" * (cast_expression "(code **)(puVar56 + 0x2b96cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b96cc)" ( (binary_expression "puVar56 + 0x2b96cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,image->filename)" ( number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5b8c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (if_statement "if (file_00 == (FILE *)0x0) {\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" if (parenthesized_expression "(file_00 == (FILE *)0x0)" ( (binary_expression "file_00 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" { (expression_statement "puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0);" (assignment_expression "puVar14 = *(undefined4 **)(puVar56 + 0x2b93d0)" identifier = (pointer_expression "*(undefined4 **)(puVar56 + 0x2b93d0)" * (cast_expression "(undefined4 **)(puVar56 + 0x2b93d0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93d0)" ( (binary_expression "puVar56 + 0x2b93d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000efed0;" goto statement_identifier ;) })) }))) (expression_statement "CVar50 = image->colorspace;" (assignment_expression "CVar50 = image->colorspace" identifier = (field_expression "image->colorspace" identifier -> field_identifier)) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b99ac)" * (cast_expression "(code **)(puVar56 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99ac)" ( (binary_expression "puVar56 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6ae8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n    pTVar51 = &image->timer;\n    auStack_310d[1] = 0;\n    pcVar33 = image->filename;\n    dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51);\n    uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51);\n    (**(code **)(puVar56 + 0x2b9b54))(pTVar51);\n    pFVar49 = file_00;\n    if ((int)((ulonglong)dVar60 >> 0x20) == 0) {\n      pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }\n      iVar7 = (*pcVar59)(image);\n      sVar37 = image->scene;\n      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);\n      sVar42 = image->magick_columns;\n      sVar37 = image->magick_rows;\n      sVar40 = image->columns;\n      if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }\n      dVar60 = (double)(int)sVar40;\n      if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar62 = (double)(int)sVar37;\n      if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }\n      dVar60 = (double)(int)image->depth;\n      if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));\n      if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      uVar32 = image->total_colors;\n      if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }\n      dVar60 = (image->error).mean_error_per_pixel;\n      if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }\n      iVar8 = (int)image->extent;\n      iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }\n      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n    else {\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n  }\n  else {\n    type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);\n    iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);\n    if (iVar8 == 0) {\n      puStack_4198 = (undefined1 *)0x0;\n    }\n    else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }\n    if (image->signature != 0xabacadab) {\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    if (image->debug != MagickFalse) {\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }\n    pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);\n    if (pFVar49 == (FILE *)0x0) {\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }\n    (**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);\n    ppcVar15 = &pFVar49->_IO_write_base;\n    dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);\n    dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);\nLAB_000efcf0:\n    if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }\n    (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);\n    if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }\n    if ((int)image->number_channels < 1) {\n      PVar41 = image->alpha_trait;\n    }\n    else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }\n    if (PVar41 != UndefinedPixelTrait) {\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    pTVar51 = &image->timer;\n    auStack_310d[1] = 0;\n    pcVar33 = image->filename;\n    dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51);\n    uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51);\n    (**(code **)(puVar56 + 0x2b9b54))(pTVar51);\n    pFVar49 = file_00;\n    if ((int)((ulonglong)dVar60 >> 0x20) == 0) {\n      pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }\n      iVar7 = (*pcVar59)(image);\n      sVar37 = image->scene;\n      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);\n      sVar42 = image->magick_columns;\n      sVar37 = image->magick_rows;\n      sVar40 = image->columns;\n      if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }\n      dVar60 = (double)(int)sVar40;\n      if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar62 = (double)(int)sVar37;\n      if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }\n      dVar60 = (double)(int)image->depth;\n      if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));\n      if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      uVar32 = image->total_colors;\n      if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }\n      dVar60 = (image->error).mean_error_per_pixel;\n      if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }\n      iVar8 = (int)image->extent;\n      iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }\n      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n    else {\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n  }" { (expression_statement "pTVar51 = &image->timer;" (assignment_expression "pTVar51 = &image->timer" identifier = (pointer_expression "&image->timer" & (field_expression "image->timer" identifier -> field_identifier))) ;) (expression_statement "auStack_310d[1] = 0;" (assignment_expression "auStack_310d[1] = 0" (subscript_expression "auStack_310d[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar33 = image->filename;" (assignment_expression "pcVar33 = image->filename" identifier = (field_expression "image->filename" identifier -> field_identifier)) ;) (expression_statement "dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51);" (assignment_expression "dVar65 = (double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51)" identifier = (cast_expression "(double)(**(code **)(puVar56 + 0x2b97e4))(pTVar51)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar56 + 0x2b97e4))(pTVar51)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b97e4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b97e4)" * (pointer_expression "*(code **)(puVar56 + 0x2b97e4)" * (cast_expression "(code **)(puVar56 + 0x2b97e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b97e4)" ( (binary_expression "puVar56 + 0x2b97e4" identifier + number_literal) ))))) )) (argument_list "(pTVar51)" ( identifier ))))) ;) (expression_statement "uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51);" (assignment_expression "uVar61 = (**(code **)(puVar56 + 0x2b9474))(pTVar51)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9474))(pTVar51)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9474))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9474)" * (pointer_expression "*(code **)(puVar56 + 0x2b9474)" * (cast_expression "(code **)(puVar56 + 0x2b9474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9474)" ( (binary_expression "puVar56 + 0x2b9474" identifier + number_literal) ))))) )) (argument_list "(pTVar51)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9b54))(pTVar51);" (call_expression "(**(code **)(puVar56 + 0x2b9b54))(pTVar51)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b54))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b54)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b54)" * (cast_expression "(code **)(puVar56 + 0x2b9b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b54)" ( (binary_expression "puVar56 + 0x2b9b54" identifier + number_literal) ))))) )) (argument_list "(pTVar51)" ( identifier ))) ;) (expression_statement "pFVar49 = file_00;" (assignment_expression "pFVar49 = file_00" identifier = identifier) ;) (if_statement "if ((int)((ulonglong)dVar60 >> 0x20) == 0) {\n      pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }\n      iVar7 = (*pcVar59)(image);\n      sVar37 = image->scene;\n      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);\n      sVar42 = image->magick_columns;\n      sVar37 = image->magick_rows;\n      sVar40 = image->columns;\n      if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }\n      dVar60 = (double)(int)sVar40;\n      if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar62 = (double)(int)sVar37;\n      if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }\n      dVar60 = (double)(int)image->depth;\n      if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));\n      if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      uVar32 = image->total_colors;\n      if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }\n      dVar60 = (image->error).mean_error_per_pixel;\n      if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }\n      iVar8 = (int)image->extent;\n      iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }\n      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }\n    else {\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }" if (parenthesized_expression "((int)((ulonglong)dVar60 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)dVar60 >> 0x20) == 0" (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }\n      iVar7 = (*pcVar59)(image);\n      sVar37 = image->scene;\n      if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);\n      sVar42 = image->magick_columns;\n      sVar37 = image->magick_rows;\n      sVar40 = image->columns;\n      if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }\n      dVar60 = (double)(int)sVar40;\n      if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar62 = (double)(int)sVar37;\n      if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }\n      dVar60 = (double)(int)image->depth;\n      if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));\n      if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }\n      uVar32 = image->total_colors;\n      if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }\n      dVar60 = (image->error).mean_error_per_pixel;\n      if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }\n      iVar8 = (int)image->extent;\n      iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }\n      uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }" { (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9198);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9198)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9198)" * (cast_expression "(code **)(puVar56 + 0x2b9198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9198)" ( (binary_expression "puVar56 + 0x2b9198" identifier + number_literal) ))))) ;) (if_statement "if (image->magick_filename[0] != '\0') {\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }" if (parenthesized_expression "(image->magick_filename[0] != '\0')" ( (binary_expression "image->magick_filename[0] != '\0'" (subscript_expression "image->magick_filename[0]" (field_expression "image->magick_filename" identifier -> field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b9198);\n      }" { (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar56 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar56 + 0x2b95fc)" * (cast_expression "(code **)(puVar56 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b95fc)" ( (binary_expression "puVar56 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(image->magick_filename,pcVar33)" ( (field_expression "image->magick_filename" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8,image->magick_filename)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6aa8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (field_expression "image->magick_filename" identifier -> field_identifier) ))) ;) })) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9198);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9198)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9198)" * (cast_expression "(code **)(puVar56 + 0x2b9198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9198)" ( (binary_expression "puVar56 + 0x2b9198" identifier + number_literal) ))))) ;) })) (expression_statement "iVar7 = (*pcVar59)(image);" (assignment_expression "iVar7 = (*pcVar59)(image)" identifier = (call_expression "(*pcVar59)(image)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(image)" ( identifier )))) ;) (expression_statement "sVar37 = image->scene;" (assignment_expression "sVar37 = image->scene" identifier = (field_expression "image->scene" identifier -> field_identifier)) ;) (if_statement "if (((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)) {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }\n      else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }" if (parenthesized_expression "(((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0))" ( (binary_expression "((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)) &&\n         (sVar37 == 0)" (parenthesized_expression "((iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) && (iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(puVar56 + 0x2b995c))(image), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b995c))(image)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b995c))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b995c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b995c)" * (pointer_expression "*(code **)(puVar56 + 0x2b995c)" * (cast_expression "(code **)(puVar56 + 0x2b995c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b995c)" ( (binary_expression "puVar56 + 0x2b995c" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(sVar37 == 0)" ( (binary_expression "sVar37 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);\n      }" { (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8e38);" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,pcVar33)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar7 + 0x30e8,pcVar33)" ( identifier , (binary_expression "iVar7 + 0x30e8" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }" else (compound_statement "{\n        iVar7 = *(int *)(puVar56 + 0x2b8e38);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);\n      }" { (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8e38);" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0,pcVar33)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6aa0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }))) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,image->magick)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar7 + 0x30e8,image->magick)" ( identifier , (binary_expression "iVar7 + 0x30e8" identifier + number_literal) , (field_expression "image->magick" identifier -> field_identifier) ))) ;) (expression_statement "sVar42 = image->magick_columns;" (assignment_expression "sVar42 = image->magick_columns" identifier = (field_expression "image->magick_columns" identifier -> field_identifier)) ;) (expression_statement "sVar37 = image->magick_rows;" (assignment_expression "sVar37 = image->magick_rows" identifier = (field_expression "image->magick_rows" identifier -> field_identifier)) ;) (expression_statement "sVar40 = image->columns;" (assignment_expression "sVar40 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if ((sVar42 == 0) && (sVar37 == 0)) {\nLAB_000f0044:\n        sVar37 = image->rows;\n      }\n      else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }" if (parenthesized_expression "((sVar42 == 0) && (sVar37 == 0))" ( (binary_expression "(sVar42 == 0) && (sVar37 == 0)" (parenthesized_expression "(sVar42 == 0)" ( (binary_expression "sVar42 == 0" identifier == number_literal) )) && (parenthesized_expression "(sVar37 == 0)" ( (binary_expression "sVar37 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000f0044:\n        sVar37 = image->rows;\n      }" { (labeled_statement "LAB_000f0044:\n        sVar37 = image->rows;" statement_identifier : (expression_statement "sVar37 = image->rows;" (assignment_expression "sVar37 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;)) }) (else_clause "else if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }" else (if_statement "if ((sVar42 != sVar40) || (image->rows != sVar37)) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }" if (parenthesized_expression "((sVar42 != sVar40) || (image->rows != sVar37))" ( (binary_expression "(sVar42 != sVar40) || (image->rows != sVar37)" (parenthesized_expression "(sVar42 != sVar40)" ( (binary_expression "sVar42 != sVar40" identifier != identifier) )) || (parenthesized_expression "(image->rows != sVar37)" ( (binary_expression "image->rows != sVar37" (field_expression "image->rows" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\n        sVar40 = image->columns;\n        goto LAB_000f0044;\n      }" { (expression_statement "dVar60 = (double)(int)sVar42;" (assignment_expression "dVar60 = (double)(int)sVar42" identifier = (cast_expression "(double)(int)sVar42" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar42" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar42 < 0)" ( (binary_expression "(int)sVar42 < 0" (cast_expression "(int)sVar42" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar62 = (double)(int)sVar37;" (assignment_expression "dVar62 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a94" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "sVar40 = image->columns;" (assignment_expression "sVar40 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000f0044;" goto statement_identifier ;) })))) (expression_statement "dVar60 = (double)(int)sVar40;" (assignment_expression "dVar60 = (double)(int)sVar40" identifier = (cast_expression "(double)(int)sVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar40 < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "((int)sVar40 < 0)" ( (binary_expression "(int)sVar40 < 0" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar62 = (double)(int)sVar37;" (assignment_expression "dVar62 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar62)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a84" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "sVar40 = (image->page).width;" (assignment_expression "sVar40 = (image->page).width" identifier = (field_expression "(image->page).width" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar37 = (image->page).height;" (assignment_expression "sVar37 = (image->page).height" identifier = (field_expression "(image->page).height" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar40 == 0) {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }" if (parenthesized_expression "(sVar40 == 0)" ( (binary_expression "sVar40 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }" { (expression_statement "iVar8 = (image->page).x;" (assignment_expression "iVar8 = (image->page).x" identifier = (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar9 = (image->page).y;" (assignment_expression "iVar9 = (image->page).y" identifier = (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((sVar37 != 0) || (iVar8 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }" if (parenthesized_expression "((sVar37 != 0) || (iVar8 != 0))" ( (binary_expression "(sVar37 != 0) || (iVar8 != 0)" (parenthesized_expression "(sVar37 != 0)" ( (binary_expression "sVar37 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }" { (expression_statement "dVar60 = 0.0;" (assignment_expression "dVar60 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f00d4;" goto statement_identifier ;) })) (if_statement "if (iVar9 != 0) {\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar60 = 0.0;\n          goto LAB_000f00d4;\n        }" { (expression_statement "dVar60 = 0.0;" (assignment_expression "dVar60 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f00d4;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }" else (compound_statement "{\n        iVar8 = (image->page).x;\n        iVar9 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);\n      }" { (expression_statement "iVar8 = (image->page).x;" (assignment_expression "iVar8 = (image->page).x" identifier = (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar9 = (image->page).y;" (assignment_expression "iVar9 = (image->page).y" identifier = (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar60 = (double)(int)sVar40;" (assignment_expression "dVar60 = (double)(int)sVar40" identifier = (cast_expression "(double)(int)sVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar40 < 0)" ( (binary_expression "(int)sVar40 < 0" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (labeled_statement "LAB_000f00d4:\n        dVar62 = (double)(int)sVar37;" statement_identifier : (expression_statement "dVar62 = (double)(int)sVar37;" (assignment_expression "dVar62 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (if_statement "if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar8,(double)iVar9)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a74" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar9" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) }))) (expression_statement "dVar60 = (double)(int)image->depth;" (assignment_expression "dVar60 = (double)(int)image->depth" identifier = (cast_expression "(double)(int)image->depth" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->depth" ( (type_descriptor "int" primitive_type) ) (field_expression "image->depth" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->depth < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "((int)image->depth < 0)" ( (binary_expression "(int)image->depth < 0" (cast_expression "(int)image->depth" ( (type_descriptor "int" primitive_type) ) (field_expression "image->depth" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a58" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) (if_statement "if (image->type != UndefinedType) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }" if (parenthesized_expression "(image->type != UndefinedType)" ( (binary_expression "image->type != UndefinedType" (field_expression "image->type" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar7 + 0x30e8,uVar29)" ( identifier , (binary_expression "iVar7 + 0x30e8" identifier + number_literal) , identifier ))) ;) })) (if_statement "if (CVar50 != UndefinedColorspace) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }" if (parenthesized_expression "(CVar50 != UndefinedColorspace)" ( (binary_expression "CVar50 != UndefinedColorspace" identifier != identifier) )) (compound_statement "{\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);\n      }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(9,CVar50)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,CVar50)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar7 + 0x30e8,uVar29)" ( identifier , (binary_expression "iVar7 + 0x30e8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "uVar32 = image->total_colors;" (assignment_expression "uVar32 = image->total_colors" identifier = (field_expression "image->total_colors" identifier -> field_identifier)) ;) (if_statement "if (image->storage_class == DirectClass) {\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }" if (parenthesized_expression "(image->storage_class == DirectClass)" ( (binary_expression "image->storage_class == DirectClass" (field_expression "image->storage_class" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }\n      }" { (if_statement "if (uVar32 != 0) {\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);" (call_expression "(**(code **)(puVar56 + 0x2b9588))\n                    (0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9588)" * (pointer_expression "*(code **)(puVar56 + 0x2b9588)" * (cast_expression "(code **)(puVar56 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9588)" ( (binary_expression "puVar56 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(0,uVar32,0,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" ( number_literal , identifier , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar7 + 0x30e8,auStack_310d + 1)" ( identifier , (binary_expression "iVar7 + 0x30e8" identifier + number_literal) , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }" else (compound_statement "{\n        uVar17 = image->colors;\n        dVar60 = (double)(int)uVar17;\n        if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n      }" { (expression_statement "uVar17 = image->colors;" (assignment_expression "uVar17 = image->colors" identifier = (field_expression "image->colors" identifier -> field_identifier)) ;) (expression_statement "dVar60 = (double)(int)uVar17;" (assignment_expression "dVar60 = (double)(int)uVar17" identifier = (cast_expression "(double)(int)uVar17" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar17 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (uVar17 < uVar32) {\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }\n        else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }" if (parenthesized_expression "(uVar17 < uVar32)" ( (binary_expression "uVar17 < uVar32" identifier < identifier) )) (compound_statement "{\n          dVar62 = (double)(int)uVar32;\n          if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);\n        }" { (expression_statement "dVar62 = (double)(int)uVar32;" (assignment_expression "dVar62 = (double)(int)uVar32" identifier = (cast_expression "(double)(int)uVar32" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar32 < 0) {\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "((int)uVar32 < 0)" ( (binary_expression "(int)uVar32 < 0" (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar62 >> 0x20)\n                     ,SUB84(dVar62,0),dVar60)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a44" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar62 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar62 >> 0x20)" ( (binary_expression "(ulonglong)dVar62 >> 0x20" (cast_expression "(ulonglong)dVar62" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar62,0)" identifier (argument_list "(dVar62,0)" ( identifier , number_literal ))) , identifier ))) ;) }) (else_clause "else {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }" else (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a4c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) }))) }))) (expression_statement "dVar60 = (image->error).mean_error_per_pixel;" (assignment_expression "dVar60 = (image->error).mean_error_per_pixel" identifier = (field_expression "(image->error).mean_error_per_pixel" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (dVar60 != 0.0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }" if (parenthesized_expression "(dVar60 != 0.0)" ( (binary_expression "dVar60 != 0.0" identifier != number_literal) )) (compound_statement "{\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);\n      }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(image->error).normalized_mean_error,\n                   (image->error).normalized_maximum_error)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a34" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , (field_expression "(image->error).normalized_mean_error" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier) , (field_expression "(image->error).normalized_maximum_error" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier) ))) ;) })) (expression_statement "iVar8 = (int)image->extent;" (assignment_expression "iVar8 = (int)image->extent" identifier = (cast_expression "(int)image->extent" ( (type_descriptor "int" primitive_type) ) (field_expression "image->extent" identifier -> field_identifier))) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)&image->extent != 0 || iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }" if (parenthesized_expression "(*(int *)&image->extent != 0 || iVar8 != 0)" ( (binary_expression "*(int *)&image->extent != 0 || iVar8 != 0" (binary_expression "*(int *)&image->extent != 0" (pointer_expression "*(int *)&image->extent" * (cast_expression "(int *)&image->extent" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&image->extent" & (field_expression "image->extent" identifier -> field_identifier)))) != number_literal) || (binary_expression "iVar8 != 0" identifier != number_literal)) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);" (call_expression "(**(code **)(puVar56 + 0x2b9588))\n                  (*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9588)" * (pointer_expression "*(code **)(puVar56 + 0x2b9588)" * (cast_expression "(code **)(puVar56 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9588)" ( (binary_expression "puVar56 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(*(int *)&image->extent,iVar8,1,*(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" ( (pointer_expression "*(int *)&image->extent" * (cast_expression "(int *)&image->extent" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&image->extent" & (field_expression "image->extent" identifier -> field_identifier)))) , identifier , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar7 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar7 + 0x30e8,auStack_310d + 1)" ( identifier , (binary_expression "iVar7 + 0x30e8" identifier + number_literal) , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) })) (expression_statement "uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0));" (assignment_expression "uVar63 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0))" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar9 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ea4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ea4)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ea4)" * (cast_expression "(code **)(puVar56 + 0x2b9ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ea4)" ( (binary_expression "puVar56 + 0x2b9ea4" identifier + number_literal) ))))) )) (argument_list "(dVar65,*(undefined8 *)(iVar9 + 0x7ba0))" ( identifier , (pointer_expression "*(undefined8 *)(iVar9 + 0x7ba0)" * (cast_expression "(undefined8 *)(iVar9 + 0x7ba0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x7ba0)" ( (binary_expression "iVar9 + 0x7ba0" identifier + number_literal) )))) )))) ;) (expression_statement "dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63);" (assignment_expression "dVar60 = (double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63)" identifier = (cast_expression "(double)(**(code **)(puVar56 + 0x2b9b5c))(uVar63)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar56 + 0x2b9b5c))(uVar63)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b5c)" * (cast_expression "(code **)(puVar56 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b5c)" ( (binary_expression "puVar56 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(uVar63)" ( identifier ))))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);" (assignment_expression "dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65)" identifier = (cast_expression "(double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar56 + 0x2b9b5c))(dVar65)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b5c)" * (cast_expression "(code **)(puVar56 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b5c)" ( (binary_expression "puVar56 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(dVar65)" ( identifier ))))) ;) (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8dcc);" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar62 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" identifier = (binary_expression "(dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar65 - dVar62)" ( (binary_expression "dVar65 - dVar62" identifier - identifier) )) * (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar62 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar62;\n      }\n      else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar62 < *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar62 < *(double *)(iVar7 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar32 = (uint)dVar62;\n      }" { (expression_statement "uVar32 = (uint)dVar62;" (assignment_expression "uVar32 = (uint)dVar62" identifier = (cast_expression "(uint)dVar62" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000;" (assignment_expression "uVar32 = (int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar62 - *(double *)(iVar7 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar62 - *(double *)(iVar7 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar62 - *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar62 - *(double *)(iVar7 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (if_statement "if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar60 < *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar60 < *(double *)(iVar7 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar17 = (uint)dVar60;\n      }" { (expression_statement "uVar17 = (uint)dVar60;" (assignment_expression "uVar17 = (uint)dVar60" identifier = (cast_expression "(uint)dVar60" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;" (assignment_expression "uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar60 - *(double *)(iVar7 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar60 - *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar60 - *(double *)(iVar7 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0);" (assignment_expression "dVar65 = dVar65 / *(double *)(iVar9 + 0x7ba0)" identifier = (binary_expression "dVar65 / *(double *)(iVar9 + 0x7ba0)" identifier / (pointer_expression "*(double *)(iVar9 + 0x7ba0)" * (cast_expression "(double *)(iVar9 + 0x7ba0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x7ba0)" ( (binary_expression "iVar9 + 0x7ba0" identifier + number_literal) )))))) ;) (if_statement "if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar65 < *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar65 < *(double *)(iVar7 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar18 = (uint)dVar65;\n      }" { (expression_statement "uVar18 = (uint)dVar65;" (assignment_expression "uVar18 = (uint)dVar65" identifier = (cast_expression "(uint)dVar65" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;" (assignment_expression "uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar65 - *(double *)(iVar7 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar65 - *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar65 - *(double *)(iVar7 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61,uVar18,uVar17,uVar32)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a24" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)uVar61 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar61 >> 0x20)" ( (binary_expression "(ulonglong)uVar61 >> 0x20" (cast_expression "(ulonglong)uVar61" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar61" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd8)" * (cast_expression "(int *)(puVar56 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd8)" ( (binary_expression "puVar56 + 0x2b8dd8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9978);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9978)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9978)" * (cast_expression "(code **)(puVar56 + 0x2b9978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9978)" ( (binary_expression "puVar56 + 0x2b9978" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }" else (compound_statement "{\n      iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);\n      (**(code **)(puVar56 + 0x2b9500))(image,uVar36);\n      if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);\n      if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }\n      pcVar33 = image->magick;\n      iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);\n      if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);\n      dVar60 = (double)(int)image->columns;\n      if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      dVar66 = (double)(int)image->rows;\n      if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);\n      sVar42 = image->magick_columns;\n      sVar40 = image->magick_rows;\n      if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }\n      channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x41,image->units);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);\n      IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);\n      if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);\n      if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }\n      if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }\n      if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }\n      if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }\n      if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }\n      if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }\n      if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      puStack_4198 = auStack_210c;\n      if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }\n      if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }\n      pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0x23,image->rendering_intent);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);\n      if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }\n      if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }\n      sVar40 = (image->extract_info).width;\n      sVar37 = (image->extract_info).height;\n      if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);\n      sVar40 = (image->page).width;\n      sVar37 = (image->page).height;\n      if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar29 = (*pcVar59)(0x15,image->dispose);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);\n      sVar37 = image->delay;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }\n      sVar37 = image->iterations;\n      if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->duration;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      sVar37 = image->scene;\n      if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      uVar29 = (*pcVar59)(0xe,image->compression);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);\n      sVar37 = image->quality;\n      if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);\n      if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }\n      if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }\n      (**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);\n      iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }\n      puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);\n      if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);\n      if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar56 + 0x2b9378))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);\n      if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9180))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b99e8))(image);\n      iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }\n      (**(code **)(puVar56 + 0x2b9d50))();\n      iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n      if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }\n      puVar48 = auStack_310d + 1;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd8);\n      uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);\n      (**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);\n      lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;\n      (**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);\n      uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);\n      if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);\n      if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }\n      iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);\n      uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));\n      dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);\n      dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);\n      iVar7 = *(int *)(puVar56 + 0x2b8dcc);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);\n      if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);\n      if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);\n      uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);\n      (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);\n      pcVar59 = *(code **)(puVar56 + 0x2b9978);\n    }" { (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9c50))(image,0,0,1,1,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9c50))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9c50)" * (pointer_expression "*(code **)(puVar56 + 0x2b9c50)" * (cast_expression "(code **)(puVar56 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9c50)" ( (binary_expression "puVar56 + 0x2b9c50" identifier + number_literal) ))))) )) (argument_list "(image,0,0,1,1,uVar36)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9500))(image,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b9500))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9500))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9500)" * (pointer_expression "*(code **)(puVar56 + 0x2b9500)" * (cast_expression "(code **)(puVar56 + 0x2b9500)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9500)" ( (binary_expression "puVar56 + 0x2b9500" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier ))) ;) (if_statement "if (iVar7 == 0) {\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }\n      else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        sVar37 = 0;\n        pCStack_4190 = (ChannelFeatures *)0x0;\n        piVar19 = (int *)0x0;\n        iVar9 = 0;\n        iVar8 = 0;\n      }" { (expression_statement "sVar37 = 0;" (assignment_expression "sVar37 = 0" identifier = number_literal) ;) (expression_statement "pCStack_4190 = (ChannelFeatures *)0x0;" (assignment_expression "pCStack_4190 = (ChannelFeatures *)0x0" identifier = (cast_expression "(ChannelFeatures *)0x0" ( (type_descriptor "ChannelFeatures *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar19 = (int *)0x0;" (assignment_expression "piVar19 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }" else (compound_statement "{\n        sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);\n        piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);\n        iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);\n        if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }\n        iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);\n        if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }\n      }" { (expression_statement "sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36);" (assignment_expression "sVar37 = (**(code **)(puVar56 + 0x2b9100))(image,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9100))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9100))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9100)" * (pointer_expression "*(code **)(puVar56 + 0x2b9100)" * (cast_expression "(code **)(puVar56 + 0x2b9100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9100)" ( (binary_expression "puVar56 + 0x2b9100" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier )))) ;) (expression_statement "piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36);" (assignment_expression "piVar19 = (int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36)" identifier = (cast_expression "(int *)(**(code **)(puVar56 + 0x2b93b0))(image,uVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x2b93b0))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b93b0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b93b0)" * (pointer_expression "*(code **)(puVar56 + 0x2b93b0)" * (cast_expression "(code **)(puVar56 + 0x2b93b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93b0)" ( (binary_expression "puVar56 + 0x2b93b0" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier ))))) ;) (expression_statement "iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c);" (assignment_expression "iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b99ac)" * (cast_expression "(code **)(puVar56 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99ac)" ( (binary_expression "puVar56 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6a0c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n          iVar9 = 0;\n          iVar8 = 0;\n        }\n        else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar9 = 0;\n          iVar8 = 0;\n        }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);\n          iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);\n        }" { (expression_statement "iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36);" (assignment_expression "iVar8 = (**(code **)(puVar56 + 0x2b9e14))(image,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9e14))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9e14))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9e14)" * (pointer_expression "*(code **)(puVar56 + 0x2b9e14)" * (cast_expression "(code **)(puVar56 + 0x2b9e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9e14)" ( (binary_expression "puVar56 + 0x2b9e14" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier )))) ;) (expression_statement "iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36);" (assignment_expression "iVar9 = (**(code **)(puVar56 + 0x2b9160))(image,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9160))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9160))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9160)" * (pointer_expression "*(code **)(puVar56 + 0x2b9160)" * (cast_expression "(code **)(puVar56 + 0x2b9160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9160)" ( (binary_expression "puVar56 + 0x2b9160" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier )))) ;) }))) (expression_statement "iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8);" (assignment_expression "iVar10 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b99ac)" * (cast_expression "(code **)(puVar56 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99ac)" ( (binary_expression "puVar56 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(image,*(int *)(puVar56 + 0x2b8dd0) + -0x69f8)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x69f8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          pCStack_4190 = (ChannelFeatures *)0x0;\n        }" { (expression_statement "pCStack_4190 = (ChannelFeatures *)0x0;" (assignment_expression "pCStack_4190 = (ChannelFeatures *)0x0" identifier = (cast_expression "(ChannelFeatures *)0x0" ( (type_descriptor "ChannelFeatures *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }" else (compound_statement "{\n          uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);\n          pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);\n        }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b982c))(iVar10,0,10)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b982c))(iVar10,0,10)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b982c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b982c)" * (pointer_expression "*(code **)(puVar56 + 0x2b982c)" * (cast_expression "(code **)(puVar56 + 0x2b982c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b982c)" ( (binary_expression "puVar56 + 0x2b982c" identifier + number_literal) ))))) )) (argument_list "(iVar10,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36);" (assignment_expression "pCStack_4190 = (ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36)" identifier = (cast_expression "(ChannelFeatures *)(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36)" ( (type_descriptor "ChannelFeatures *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x2b92f0))(image,uVar29,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92f0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92f0)" * (pointer_expression "*(code **)(puVar56 + 0x2b92f0)" * (cast_expression "(code **)(puVar56 + 0x2b92f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92f0)" ( (binary_expression "puVar56 + 0x2b92f0" identifier + number_literal) ))))) )) (argument_list "(image,uVar29,uVar36)" ( identifier , identifier , identifier ))))) ;) }))) }))) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69e4,pcVar33)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x69e4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (image->magick_filename[0] != '\0') {\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }" if (parenthesized_expression "(image->magick_filename[0] != '\0')" ( (binary_expression "image->magick_filename[0] != '\0'" (subscript_expression "image->magick_filename[0]" (field_expression "image->magick_filename" identifier -> field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);\n        if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }\n      }" { (expression_statement "iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33);" (assignment_expression "iVar10 = (**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b95fc))(image->magick_filename,pcVar33)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar56 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar56 + 0x2b95fc)" * (cast_expression "(code **)(puVar56 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b95fc)" ( (binary_expression "puVar56 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(image->magick_filename,pcVar33)" ( (field_expression "image->magick_filename" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar10 != 0) {\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9304))(image->magick_filename,4,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9304))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9304)" * (pointer_expression "*(code **)(puVar56 + 0x2b9304)" * (cast_expression "(code **)(puVar56 + 0x2b9304)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9304)" ( (binary_expression "puVar56 + 0x2b9304" identifier + number_literal) ))))) )) (argument_list "(image->magick_filename,4,acStack_110c)" ( (field_expression "image->magick_filename" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69cc,acStack_110c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x69cc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) })) (expression_statement "pcVar33 = image->magick;" (assignment_expression "pcVar33 = image->magick" identifier = (field_expression "image->magick" identifier -> field_identifier)) ;) (expression_statement "iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36);" (assignment_expression "iVar10 = (**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b98f8))(pcVar33,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b98f8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b98f8)" * (pointer_expression "*(code **)(puVar56 + 0x2b98f8)" * (cast_expression "(code **)(puVar56 + 0x2b98f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b98f8)" ( (binary_expression "puVar56 + 0x2b98f8" identifier + number_literal) ))))) )) (argument_list "(pcVar33,uVar36)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }\n      else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) (else_clause "else {\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }" else (compound_statement "{\n        iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n        if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }\n        iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n        if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }\n      }" { (expression_statement "iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10);" (assignment_expression "iVar11 = (**(code **)(puVar56 + 0x2b933c))(iVar10)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b933c))(iVar10)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b933c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b933c)" * (pointer_expression "*(code **)(puVar56 + 0x2b933c)" * (cast_expression "(code **)(puVar56 + 0x2b933c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b933c)" ( (binary_expression "puVar56 + 0x2b933c" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar11 == 0) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }\n        else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x610c,pcVar33)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) (else_clause "else {\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }" else (compound_statement "{\n          uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);\n        }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b933c))(iVar10)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b933c))(iVar10)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b933c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b933c)" * (pointer_expression "*(code **)(puVar56 + 0x2b933c)" * (cast_expression "(code **)(puVar56 + 0x2b933c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b933c)" ( (binary_expression "puVar56 + 0x2b933c" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x69b4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) }))) (expression_statement "iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10);" (assignment_expression "iVar11 = (**(code **)(puVar56 + 0x2b9994))(iVar10)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9994))(iVar10)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9994))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9994)" * (pointer_expression "*(code **)(puVar56 + 0x2b9994)" * (cast_expression "(code **)(puVar56 + 0x2b9994)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9994)" ( (binary_expression "puVar56 + 0x2b9994" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar11 != 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);\n        }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b9994))(iVar10)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9994))(iVar10)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9994))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9994)" * (pointer_expression "*(code **)(puVar56 + 0x2b9994)" * (cast_expression "(code **)(puVar56 + 0x2b9994)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9994)" ( (binary_expression "puVar56 + 0x2b9994" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x69a0,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x69a0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) }))) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(5,image->storage_class)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(5,image->storage_class)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(5,image->storage_class)" ( number_literal , (field_expression "image->storage_class" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x698c,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x698c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "dVar60 = (double)(int)image->columns;" (assignment_expression "dVar60 = (double)(int)image->columns" identifier = (cast_expression "(double)(int)image->columns" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->columns < 0) {\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "((int)image->columns < 0)" ( (binary_expression "(int)image->columns < 0" (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar66 = (double)(int)image->rows;" (assignment_expression "dVar66 = (double)(int)image->rows" identifier = (cast_expression "(double)(int)image->rows" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->rows < 0) {\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "((int)image->rows < 0)" ( (binary_expression "(int)image->rows < 0" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar60 >> 0x20),\n                 SUB84(dVar60,0),dVar66,(double)(image->tile_offset).x,\n                 (double)(image->tile_offset).y)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x697c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)(image->tile_offset).x" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->tile_offset).x" (parenthesized_expression "(image->tile_offset)" ( (field_expression "image->tile_offset" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(double)(image->tile_offset).y" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->tile_offset).y" (parenthesized_expression "(image->tile_offset)" ( (field_expression "image->tile_offset" identifier -> field_identifier) )) . field_identifier)) ))) ;) (expression_statement "sVar42 = image->magick_columns;" (assignment_expression "sVar42 = image->magick_columns" identifier = (field_expression "image->magick_columns" identifier -> field_identifier)) ;) (expression_statement "sVar40 = image->magick_rows;" (assignment_expression "sVar40 = image->magick_rows" identifier = (field_expression "image->magick_rows" identifier -> field_identifier)) ;) (if_statement "if (((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))) {\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }" if (parenthesized_expression "(((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40))))" ( (binary_expression "((sVar42 != 0) || (sVar40 != 0)) &&\n         ((sVar42 != image->columns || (image->rows != sVar40)))" (parenthesized_expression "((sVar42 != 0) || (sVar40 != 0))" ( (binary_expression "(sVar42 != 0) || (sVar40 != 0)" (parenthesized_expression "(sVar42 != 0)" ( (binary_expression "sVar42 != 0" identifier != number_literal) )) || (parenthesized_expression "(sVar40 != 0)" ( (binary_expression "sVar40 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((sVar42 != image->columns || (image->rows != sVar40)))" ( (parenthesized_expression "(sVar42 != image->columns || (image->rows != sVar40))" ( (binary_expression "sVar42 != image->columns || (image->rows != sVar40)" (binary_expression "sVar42 != image->columns" identifier != (field_expression "image->columns" identifier -> field_identifier)) || (parenthesized_expression "(image->rows != sVar40)" ( (binary_expression "image->rows != sVar40" (field_expression "image->rows" identifier -> field_identifier) != identifier) ))) )) ))) )) (compound_statement "{\n        dVar60 = (double)(int)sVar42;\n        if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);\n      }" { (expression_statement "dVar60 = (double)(int)sVar42;" (assignment_expression "dVar60 = (double)(int)sVar42" identifier = (cast_expression "(double)(int)sVar42" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar42" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar42 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar42 < 0)" ( (binary_expression "(int)sVar42 < 0" (cast_expression "(int)sVar42" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar66 = (double)(int)sVar40;" (assignment_expression "dVar66 = (double)(int)sVar40" identifier = (cast_expression "(double)(int)sVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar40 < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar40 < 0)" ( (binary_expression "(int)sVar40 < 0" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar66)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6954" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier ))) ;) })) (expression_statement "channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4);" (assignment_expression "channel_moments_00 = *(ChannelMoments **)((int)&(image->resolution).x + 4)" identifier = (pointer_expression "*(ChannelMoments **)((int)&(image->resolution).x + 4)" * (cast_expression "(ChannelMoments **)((int)&(image->resolution).x + 4)" ( (type_descriptor "ChannelMoments **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(image->resolution).x + 4)" ( (binary_expression "(int)&(image->resolution).x + 4" (cast_expression "(int)&(image->resolution).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(image->resolution).x" & (field_expression "(image->resolution).x" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b924c);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if ((image->resolution).x != 0.0) {\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" if (parenthesized_expression "((image->resolution).x != 0.0)" ( (binary_expression "(image->resolution).x != 0.0" (field_expression "(image->resolution).x" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n        dVar60 = (image->resolution).y;\n        if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" { (expression_statement "dVar60 = (image->resolution).y;" (assignment_expression "dVar60 = (image->resolution).y" identifier = (field_expression "(image->resolution).y" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (dVar60 != 0.0) {\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }" if (parenthesized_expression "(dVar60 != 0.0)" ( (binary_expression "dVar60 != 0.0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);\n          dVar60 = (double)(int)image->columns;\n          if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          dVar60 = dVar60 / (image->resolution).x;\n          dVar66 = (double)(int)image->rows;\n          channel_moments_00 = SUB84(dVar60,0);\n          if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6934,\n                     *(undefined4 *)&(image->resolution).x,channel_moments_00,dVar60)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6934" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)&(image->resolution).x" * (cast_expression "(undefined4 *)&(image->resolution).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(image->resolution).x" & (field_expression "(image->resolution).x" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier)))) , identifier , identifier ))) ;) (expression_statement "dVar60 = (double)(int)image->columns;" (assignment_expression "dVar60 = (double)(int)image->columns" identifier = (cast_expression "(double)(int)image->columns" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->columns < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "((int)image->columns < 0)" ( (binary_expression "(int)image->columns < 0" (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar60 = dVar60 / (image->resolution).x;" (assignment_expression "dVar60 = dVar60 / (image->resolution).x" identifier = (binary_expression "dVar60 / (image->resolution).x" identifier / (field_expression "(image->resolution).x" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "dVar66 = (double)(int)image->rows;" (assignment_expression "dVar66 = (double)(int)image->rows" identifier = (cast_expression "(double)(int)image->rows" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)))) ;) (expression_statement "channel_moments_00 = SUB84(dVar60,0);" (assignment_expression "channel_moments_00 = SUB84(dVar60,0)" identifier = (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal )))) ;) (if_statement "if ((int)image->rows < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "((int)image->rows < 0)" ( (binary_expression "(int)image->rows < 0" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x691c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,channel_moments_00,dVar66 / (image->resolution).y)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x691c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , (binary_expression "dVar66 / (image->resolution).y" identifier / (field_expression "(image->resolution).y" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier)) ))) ;) })) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b924c);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar29 = (*pcVar59)(0x41,image->units);" (assignment_expression "uVar29 = (*pcVar59)(0x41,image->units)" identifier = (call_expression "(*pcVar59)(0x41,image->units)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(0x41,image->units)" ( number_literal , (field_expression "image->units" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6904,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6904" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,CVar50)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(9,CVar50)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,CVar50)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68f4,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x68f4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36);" (assignment_expression "IVar20 = (**(code **)(puVar56 + 0x2b938c))(image,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b938c))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b938c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b938c)" * (pointer_expression "*(code **)(puVar56 + 0x2b938c)" * (cast_expression "(code **)(puVar56 + 0x2b938c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b938c)" ( (binary_expression "puVar56 + 0x2b938c" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier )))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49,IVar20)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0x49,IVar20)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49,IVar20)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68e0,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x68e0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (image->type != IVar20) {\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }" if (parenthesized_expression "(image->type != IVar20)" ( (binary_expression "image->type != IVar20" (field_expression "image->type" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);\n      }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x49)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68d4,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x68d4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x18,image->endian)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0x18,image->endian)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x18,image->endian)" ( number_literal , (field_expression "image->endian" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68c0,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x68c0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (sVar37 != 0) {\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }" if (parenthesized_expression "(sVar37 != 0)" ( (binary_expression "sVar37 != 0" identifier != number_literal) )) (compound_statement "{\n        sVar40 = image->depth;\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }\n      }" { (expression_statement "sVar40 = image->depth;" (assignment_expression "sVar40 = image->depth" identifier = (field_expression "image->depth" identifier -> field_identifier)) ;) (expression_statement "dVar60 = (double)(int)sVar37;" (assignment_expression "dVar60 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (sVar40 == sVar37) {\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }\n        else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }" if (parenthesized_expression "(sVar40 == sVar37)" ( (binary_expression "sVar40 == sVar37" identifier == identifier) )) (compound_statement "{\n          channel_moments_00 = SUB84(dVar60,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );\n        }" { (expression_statement "channel_moments_00 = SUB84(dVar60,0);" (assignment_expression "channel_moments_00 = SUB84(dVar60,0)" identifier = (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    );" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    )" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar60 >> 0x20)\n                    )" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x68ac" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) }) (else_clause "else {\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }" else (compound_statement "{\n          dVar66 = (double)(int)sVar40;\n          if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          channel_moments_00 = SUB84(dVar66,0);\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);\n        }" { (expression_statement "dVar66 = (double)(int)sVar40;" (assignment_expression "dVar66 = (double)(int)sVar40" identifier = (cast_expression "(double)(int)sVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar40 < 0) {\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "((int)sVar40 < 0)" ( (binary_expression "(int)sVar40 < 0" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "channel_moments_00 = SUB84(dVar66,0);" (assignment_expression "channel_moments_00 = SUB84(dVar66,0)" identifier = (call_expression "SUB84(dVar66,0)" identifier (argument_list "(dVar66,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar66 >> 0x20)\n                     ,channel_moments_00,dVar60)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6898" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar66 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar66 >> 0x20)" ( (binary_expression "(ulonglong)dVar66 >> 0x20" (cast_expression "(ulonglong)dVar66" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , identifier ))) ;) }))) })) (if_statement "if (piVar19 != (int *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }" if (parenthesized_expression "(piVar19 != (int *)0x0)" ( (binary_expression "piVar19 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar66 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        channel_moments_00 = SUB84(dVar60 * dVar66,0);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));\n        if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }\n        if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }\n        if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x687c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x687c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }" if (parenthesized_expression "(CVar50 < JzazbzColorspace)" ( (binary_expression "CVar50 < JzazbzColorspace" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }" { comment comment (expression_statement "sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))();" (assignment_expression "sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))()" identifier = (call_expression "(*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c))" ( (pointer_expression "*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c)" * (cast_expression "(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c)" ( (binary_expression "puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4) +\n                             0x2c0d9c" (binary_expression "puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4)" * (cast_expression "(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6028 + CVar50 * 4" (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6028" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "CVar50 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar16;" return identifier ;) })) (if_statement "if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" if (parenthesized_expression "((int)image->number_channels < 1)" ( (binary_expression "(int)image->number_channels < 1" (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          PVar41 = image->alpha_trait;\n        }" { (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }) (else_clause "else {\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" else (compound_statement "{\n          iVar10 = 0;\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          piVar39 = piVar19;\n          do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar11 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar39 = piVar19;" (assignment_expression "piVar39 = piVar19" identifier = identifier) ;) (do_statement "do {\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          } while (iVar10 < (int)image->number_channels);" do (compound_statement "{\n            dVar66 = (double)iVar10;\n            dVar64 = (double)*piVar39;\n            if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }\n            iVar10 = iVar10 + 1;\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);\n            piVar39 = piVar39 + 0x1e;\n          }" { (expression_statement "dVar66 = (double)iVar10;" (assignment_expression "dVar66 = (double)iVar10" identifier = (cast_expression "(double)iVar10" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar64 = (double)*piVar39;" (assignment_expression "dVar64 = (double)*piVar39" identifier = (cast_expression "(double)*piVar39" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*piVar39" * identifier))) ;) (if_statement "if (*piVar39 < 0) {\n              dVar64 = dVar64 + dVar60;\n            }" if (parenthesized_expression "(*piVar39 < 0)" ( (binary_expression "*piVar39 < 0" (pointer_expression "*piVar39" * identifier) < number_literal) )) (compound_statement "{\n              dVar64 = dVar64 + dVar60;\n            }" { (expression_statement "dVar64 = dVar64 + dVar60;" (assignment_expression "dVar64 = dVar64 + dVar60" identifier = (binary_expression "dVar64 + dVar60" identifier + identifier)) ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar11 + -0x67ac,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                       dVar64)" ( identifier , (binary_expression "iVar11 + -0x67ac" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar66 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar66 >> 0x20)" ( (binary_expression "(ulonglong)dVar66 >> 0x20" (cast_expression "(ulonglong)dVar66" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar66,0)" identifier (argument_list "(dVar66,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "piVar39 = piVar39 + 0x1e;" (assignment_expression "piVar39 = piVar39 + 0x1e" identifier = (binary_expression "piVar39 + 0x1e" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < (int)image->number_channels)" ( (binary_expression "iVar10 < (int)image->number_channels" identifier < (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier))) )) ;) (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }))) (if_statement "if (PVar41 != UndefinedPixelTrait) {\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }" if (parenthesized_expression "(PVar41 != UndefinedPixelTrait)" ( (binary_expression "PVar41 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n          dVar60 = (double)piVar19[0x78];\n          if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n        }" { (expression_statement "dVar60 = (double)piVar19[0x78];" (assignment_expression "dVar60 = (double)piVar19[0x78]" identifier = (cast_expression "(double)piVar19[0x78]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar19[0x78]" identifier [ number_literal ]))) ;) (if_statement "if (piVar19[0x78] < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(piVar19[0x78] < 0)" ( (binary_expression "piVar19[0x78] < 0" (subscript_expression "piVar19[0x78]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x678c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6774)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6774" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar60 = (double)(int)image->columns;" (assignment_expression "dVar60 = (double)(int)image->columns" identifier = (cast_expression "(double)(int)image->columns" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)image->columns < 0)" ( (binary_expression "(int)image->columns < 0" (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar66 = (double)(int)image->rows;" (assignment_expression "dVar66 = (double)(int)image->rows" identifier = (cast_expression "(double)(int)image->rows" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->rows < 0) {\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)image->rows < 0)" ( (binary_expression "(int)image->rows < 0" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar66 = dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar66 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "channel_moments_00 = SUB84(dVar60 * dVar66,0);" (assignment_expression "channel_moments_00 = SUB84(dVar60 * dVar66,0)" identifier = (call_expression "SUB84(dVar60 * dVar66,0)" identifier (argument_list "(dVar60 * dVar66,0)" ( (binary_expression "dVar60 * dVar66" identifier * identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar60 * dVar66) >> 0x20))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x675c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)(dVar60 * dVar66) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(dVar60 * dVar66) >> 0x20)" ( (binary_expression "(ulonglong)(dVar60 * dVar66) >> 0x20" (call_expression "(ulonglong)(dVar60 * dVar66)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(dVar60 * dVar66)" ( (binary_expression "dVar60 * dVar66" identifier * identifier) ))) >> number_literal) ))) ))) ;) (if_statement "if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }" if (parenthesized_expression "(CVar50 < JzazbzColorspace)" ( (binary_expression "CVar50 < JzazbzColorspace" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();\n          return sVar16;\n        }" { comment comment (expression_statement "sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))();" (assignment_expression "sVar16 = (*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))()" identifier = (call_expression "(*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c))" ( (pointer_expression "*(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c)" * (cast_expression "(code *)(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c)" ( (binary_expression "puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4) +\n                             0x2c0d9c" (binary_expression "puVar56 +\n                             *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4)" * (cast_expression "(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0 + CVar50 * 4" (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5fa0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "CVar50 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar16;" return identifier ;) })) (if_statement "if ((int)image->number_channels < 1) {\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" if (parenthesized_expression "((int)image->number_channels < 1)" ( (binary_expression "(int)image->number_channels < 1" (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          PVar41 = image->alpha_trait;\n        }" { (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }) (else_clause "else {\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" else (compound_statement "{\n          channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          pCVar3 = channel_moments_00 + -0x35;\n          iVar10 = 0;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" { (expression_statement "channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68);" (assignment_expression "channel_moments_00 = *(ChannelMoments **)(puVar56 + 0x2b8f68)" identifier = (pointer_expression "*(ChannelMoments **)(puVar56 + 0x2b8f68)" * (cast_expression "(ChannelMoments **)(puVar56 + 0x2b8f68)" ( (type_descriptor "ChannelMoments **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b8f68)" ( (binary_expression "puVar56 + 0x2b8f68" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar11 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "pCVar3 = channel_moments_00 + -0x35;" (assignment_expression "pCVar3 = channel_moments_00 + -0x35" identifier = (binary_expression "channel_moments_00 + -0x35" identifier + number_literal)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          } while (iVar12 < (int)image->number_channels);" do (compound_statement "{\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);\n            iVar12 = iVar10 + 1;\n            (*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);\n            iVar10 = iVar12;\n          }" { (expression_statement "(**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728);" (call_expression "(**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar11 + -0x6728)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9268)" * (pointer_expression "*(code **)(puVar56 + 0x2b9268)" * (cast_expression "(code **)(puVar56 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9268)" ( (binary_expression "puVar56 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,0x1000,iVar11 + -0x6728)" ( identifier , number_literal , (binary_expression "iVar11 + -0x6728" identifier + number_literal) ))) ;) (expression_statement "iVar12 = iVar10 + 1;" (assignment_expression "iVar12 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c);" (call_expression "(*(code *)(pCVar3->invariant + 4))(file_00,iVar10,acStack_110c)" (parenthesized_expression "(*(code *)(pCVar3->invariant + 4))" ( (pointer_expression "*(code *)(pCVar3->invariant + 4)" * (cast_expression "(code *)(pCVar3->invariant + 4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pCVar3->invariant + 4)" ( (binary_expression "pCVar3->invariant + 4" (field_expression "pCVar3->invariant" identifier -> field_identifier) + number_literal) )))) )) (argument_list "(file_00,iVar10,acStack_110c)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar10 = iVar12;" (assignment_expression "iVar10 = iVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 < (int)image->number_channels)" ( (binary_expression "iVar12 < (int)image->number_channels" identifier < (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier))) )) ;) (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }))) (if_statement "if (PVar41 != UndefinedPixelTrait) {\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }" if (parenthesized_expression "(PVar41 != UndefinedPixelTrait)" ( (binary_expression "PVar41 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n          (*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);\n        }" { (expression_statement "(*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158);" (call_expression "(*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))\n                    (file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158)" (parenthesized_expression "(*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60))" ( (pointer_expression "*(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60)" * (cast_expression "(code *)(*(int *)(puVar56 + 0x2b8f68) + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8f68) + -0x1a60)" ( (binary_expression "*(int *)(puVar56 + 0x2b8f68) + -0x1a60" (pointer_expression "*(int *)(puVar56 + 0x2b8f68)" * (cast_expression "(int *)(puVar56 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8f68)" ( (binary_expression "puVar56 + 0x2b8f68" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(file_00,4,*(int *)(puVar56 + 0x2b8dd0) + 0x158)" ( identifier , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if ((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)) {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }" if (parenthesized_expression "((CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace))" ( (binary_expression "(CVar50 != LinearGRAYColorspace) &&\n           (iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)" (parenthesized_expression "(CVar50 != LinearGRAYColorspace)" ( (binary_expression "CVar50 != LinearGRAYColorspace" identifier != identifier) )) && (parenthesized_expression "(iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace)" ( (comma_expression "iVar10 = *(int *)(puVar56 + 0x2b8f68), CVar50 != GRAYColorspace" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8f68)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8f68)" * (cast_expression "(int *)(puVar56 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8f68)" ( (binary_expression "puVar56 + 0x2b8f68" identifier + number_literal) ))))) , (binary_expression "CVar50 != GRAYColorspace" identifier != identifier)) ))) )) (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);\n          (*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6748)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6748" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730);" (call_expression "(*(code *)(iVar10 + -0x1a60))(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730)" (parenthesized_expression "(*(code *)(iVar10 + -0x1a60))" ( (pointer_expression "*(code *)(iVar10 + -0x1a60)" * (cast_expression "(code *)(iVar10 + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x1a60)" ( (binary_expression "iVar10 + -0x1a60" identifier + number_literal) )))) )) (argument_list "(file_00,0x40,*(int *)(puVar56 + 0x2b8dd0) + -0x6730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b94ac))(piVar19);" (call_expression "(**(code **)(puVar56 + 0x2b94ac))(piVar19)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(piVar19)" ( identifier ))) ;) })) (if_statement "if (iVar8 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }\n        (*pcVar59)(iVar8);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6718)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6718" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (CVar50 == GRAYColorspace) {\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }\n        else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }" if (parenthesized_expression "(CVar50 == GRAYColorspace)" ( (binary_expression "CVar50 == GRAYColorspace" identifier == identifier) )) (compound_statement "{\n          PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);\n          if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n        }" { (expression_statement "PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00);" (call_expression "PrintChannelMoments(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00)" identifier (argument_list "(file_00,CyanPixelChannel,\n                              (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),dVar62,\n                              channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (if_statement "if (image->alpha_trait != UndefinedPixelTrait) {\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }" if (parenthesized_expression "(image->alpha_trait != UndefinedPixelTrait)" ( (binary_expression "image->alpha_trait != UndefinedPixelTrait" (field_expression "image->alpha_trait" identifier -> field_identifier) != identifier) )) (compound_statement "{\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\nLAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);\n            goto LAB_000f33c0;\n          }" { (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000f339c:\n            PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);" statement_identifier : (expression_statement "PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,AlphaPixelChannel,(char *)(iVar10 + 0x158),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(iVar10 + 0x158)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x158)" ( (binary_expression "iVar10 + 0x158" identifier + number_literal) ))) , identifier , identifier ))) ;)) (goto_statement "goto LAB_000f33c0;" goto statement_identifier ;) })) (labeled_statement "LAB_000f1160:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);" statement_identifier : (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b94ac);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }" else (compound_statement "{\n          if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }\n          if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }\n          if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n          if (CVar50 != GRAYColorspace) goto LAB_000f1124;\n        }" { (if_statement "if (CVar50 < HCLColorspace) {\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }" if (parenthesized_expression "(CVar50 < HCLColorspace)" ( (binary_expression "CVar50 < HCLColorspace" identifier < identifier) )) (compound_statement "{\n            if (CVar50 != CMYKColorspace) goto LAB_000f33e4;\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);\n            if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);\n            PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);\n            goto LAB_000f1160;\n          }" { (if_statement "if (CVar50 != CMYKColorspace) goto LAB_000f33e4;" if (parenthesized_expression "(CVar50 != CMYKColorspace)" ( (binary_expression "CVar50 != CMYKColorspace" identifier != identifier) )) (goto_statement "goto LAB_000f33e4;" goto statement_identifier ;)) (expression_statement "PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x17c)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x194)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,BlackPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x164)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (if_statement "if (image->alpha_trait != UndefinedPixelTrait) goto LAB_000f3398;" if (parenthesized_expression "(image->alpha_trait != UndefinedPixelTrait)" ( (binary_expression "image->alpha_trait != UndefinedPixelTrait" (field_expression "image->alpha_trait" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_000f3398;" goto statement_identifier ;)) (labeled_statement "LAB_000f1124:\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);" statement_identifier : (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6704)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6704" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,CompositePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6730)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + -0x6730)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (goto_statement "goto LAB_000f1160;" goto statement_identifier ;) })) (if_statement "if ((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)) {\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }\n          else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }" if (parenthesized_expression "((CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace))" ( (binary_expression "(CVar50 == RGBColorspace) || (CVar50 == sRGBColorspace)" (parenthesized_expression "(CVar50 == RGBColorspace)" ( (binary_expression "CVar50 == RGBColorspace" identifier == identifier) )) || (parenthesized_expression "(CVar50 == sRGBColorspace)" ( (binary_expression "CVar50 == sRGBColorspace" identifier == identifier) ))) )) (compound_statement "{\n            PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);\n            PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);\nLAB_000f3384:\n            PVar41 = image->alpha_trait;\n          }" { (expression_statement "PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,CyanPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,CbPixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x188)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00);" (call_expression "PrintChannelMoments(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00)" identifier (argument_list "(file_00,BluePixelChannel,\n                                (char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),dVar62,\n                                channel_moments_00)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x170)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , identifier ))) ;) (labeled_statement "LAB_000f3384:\n            PVar41 = image->alpha_trait;" statement_identifier : (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;)) }) (else_clause "else {\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }" else (compound_statement "{\nLAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            if ((int)image->number_channels < 1) goto LAB_000f3384;\n            channel_moments_00 = (ChannelMoments *)0x0;\n            iVar11 = *(int *)(puVar56 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);\n            PVar41 = image->alpha_trait;\n          }" { (labeled_statement "LAB_000f33e4:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (if_statement "if ((int)image->number_channels < 1) goto LAB_000f3384;" if (parenthesized_expression "((int)image->number_channels < 1)" ( (binary_expression "(int)image->number_channels < 1" (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier)) < number_literal) )) (goto_statement "goto LAB_000f3384;" goto statement_identifier ;)) (expression_statement "channel_moments_00 = (ChannelMoments *)0x0;" (assignment_expression "channel_moments_00 = (ChannelMoments *)0x0" identifier = (cast_expression "(ChannelMoments *)0x0" ( (type_descriptor "ChannelMoments *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar11 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar11 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) (do_statement "do {\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            } while ((int)channel_moments_00 < (int)image->number_channels);" do (compound_statement "{\n              (**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);\n              PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);\n              channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);\n            }" { (expression_statement "(**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00);" (call_expression "(**(code **)(puVar56 + 0x2b9268))\n                        (acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9268)" * (pointer_expression "*(code **)(puVar56 + 0x2b9268)" * (cast_expression "(code **)(puVar56 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9268)" ( (binary_expression "puVar56 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,0x1000,iVar10 + -0x6728,channel_moments_00,\n                         (double)(int)channel_moments_00)" ( identifier , number_literal , (binary_expression "iVar10 + -0x6728" identifier + number_literal) , identifier , (cast_expression "(double)(int)channel_moments_00" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)channel_moments_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00);" (call_expression "PrintChannelMoments(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00)" identifier (argument_list "(file_00,(PixelChannel)channel_moments_00,(char *)(iVar11 + 0x6b1c)\n                                  ,dVar62,channel_moments_00)" ( identifier , (cast_expression "(PixelChannel)channel_moments_00" ( (type_descriptor "PixelChannel" type_identifier) ) identifier) , (cast_expression "(char *)(iVar11 + 0x6b1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x6b1c)" ( (binary_expression "iVar11 + 0x6b1c" identifier + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1);" (assignment_expression "channel_moments_00 = (ChannelMoments *)((int)channel_moments_00->invariant + 1)" identifier = (cast_expression "(ChannelMoments *)((int)channel_moments_00->invariant + 1)" ( (type_descriptor "ChannelMoments *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)channel_moments_00->invariant + 1)" ( (binary_expression "(int)channel_moments_00->invariant + 1" (cast_expression "(int)channel_moments_00->invariant" ( (type_descriptor "int" primitive_type) ) (field_expression "channel_moments_00->invariant" identifier -> field_identifier)) + number_literal) )))) ;) }) while (parenthesized_expression "((int)channel_moments_00 < (int)image->number_channels)" ( (binary_expression "(int)channel_moments_00 < (int)image->number_channels" (cast_expression "(int)channel_moments_00" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier))) )) ;) (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }))) (if_statement "if (PVar41 != UndefinedPixelTrait) {\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" if (parenthesized_expression "(PVar41 != UndefinedPixelTrait)" ( (binary_expression "PVar41 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\nLAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" { (labeled_statement "LAB_000f3398:\n            iVar10 = *(int *)(puVar56 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000f339c;" goto statement_identifier ;) })) (labeled_statement "LAB_000f33c0:\n          pcVar59 = *(code **)(puVar56 + 0x2b94ac);" statement_identifier : (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b94ac);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) ;)) (if_statement "if (CVar50 != GRAYColorspace) goto LAB_000f1124;" if (parenthesized_expression "(CVar50 != GRAYColorspace)" ( (binary_expression "CVar50 != GRAYColorspace" identifier != identifier) )) (goto_statement "goto LAB_000f1124;" goto statement_identifier ;)) }))) (expression_statement "(*pcVar59)(iVar8);" (call_expression "(*pcVar59)(iVar8)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(iVar8)" ( identifier ))) ;) })) (if_statement "if (iVar9 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n        if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar9);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66f0)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x66f0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (0 < *(int *)(iVar9 + 0x90)) {\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }" if (parenthesized_expression "(0 < *(int *)(iVar9 + 0x90))" ( (binary_expression "0 < *(int *)(iVar9 + 0x90)" number_literal < (pointer_expression "*(int *)(iVar9 + 0x90)" * (cast_expression "(int *)(iVar9 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x90)" ( (binary_expression "iVar9 + 0x90" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          puVar14 = (undefined4 *)(iVar9 + 0x94);\n          iVar8 = *(int *)(puVar56 + 0x2b8dd4);\n          iVar11 = 0;\n          do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);\n        }" { (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = (undefined4 *)(iVar9 + 0x94);" (assignment_expression "puVar14 = (undefined4 *)(iVar9 + 0x94)" identifier = (cast_expression "(undefined4 *)(iVar9 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x94)" ( (binary_expression "iVar9 + 0x94" identifier + number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          } while (iVar11 < iVar12);" do (compound_statement "{\n            uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);\n            iVar12 = *(int *)(iVar9 + 0x90);\n            if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }\n            iVar11 = iVar11 + 1;\n            puVar14 = puVar14 + 1;\n          }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(9,*puVar14)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(9,*puVar14)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,*puVar14)" ( number_literal , (pointer_expression "*puVar14" * identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar10 + -0x62ac,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar10 + -0x62ac,uVar29)" ( identifier , (binary_expression "iVar10 + -0x62ac" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar12 = *(int *)(iVar9 + 0x90);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x90)" identifier = (pointer_expression "*(int *)(iVar9 + 0x90)" * (cast_expression "(int *)(iVar9 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x90)" ( (binary_expression "iVar9 + 0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 < iVar12 + -1) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }" if (parenthesized_expression "(iVar11 < iVar12 + -1)" ( (binary_expression "iVar11 < iVar12 + -1" identifier < (binary_expression "iVar12 + -1" identifier + number_literal)) )) (compound_statement "{\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);\n              iVar12 = *(int *)(iVar9 + 0x90);\n            }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + 0x2948)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar8 + 0x2948)" ( identifier , (binary_expression "iVar8 + 0x2948" identifier + number_literal) ))) ;) (expression_statement "iVar12 = *(int *)(iVar9 + 0x90);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x90)" identifier = (pointer_expression "*(int *)(iVar9 + 0x90)" * (cast_expression "(int *)(iVar9 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x90)" ( (binary_expression "iVar9 + 0x90" identifier + number_literal) ))))) ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < iVar12)" ( (binary_expression "iVar11 < iVar12" identifier < identifier) )) ;) })) (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd8);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd8)" * (cast_expression "(int *)(puVar56 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd8)" ( (binary_expression "puVar56 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar8 + -0x4bdc)" ( identifier , (binary_expression "iVar8 + -0x4bdc" identifier + number_literal) ))) ;) (if_statement "if (0 < (int)image->number_channels) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }" if (parenthesized_expression "(0 < (int)image->number_channels)" ( (binary_expression "0 < (int)image->number_channels" number_literal < (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier))) )) (compound_statement "{\n          iVar11 = *(int *)(puVar56 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);\n        }" { (expression_statement "iVar11 = *(int *)(puVar56 + 0x2b8dcc);" (assignment_expression "iVar11 = *(int *)(puVar56 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "iStack_418c = 0;" (assignment_expression "iStack_418c = 0" identifier = number_literal) ;) (expression_statement "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iStack_4180 = 0;" (assignment_expression "iStack_4180 = 0" identifier = number_literal) ;) (expression_statement "dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < (int)image->number_channels);" do (compound_statement "{\n            iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);\n            if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          }" { (expression_statement "iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c);" (assignment_expression "iVar12 = *(int *)((int)&image->channel_map->channel + iStack_418c)" identifier = (pointer_expression "*(int *)((int)&image->channel_map->channel + iStack_418c)" * (cast_expression "(int *)((int)&image->channel_map->channel + iStack_418c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&image->channel_map->channel + iStack_418c)" ( (binary_expression "(int)&image->channel_map->channel + iStack_418c" (cast_expression "(int)&image->channel_map->channel" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&image->channel_map->channel" & (field_expression "image->channel_map->channel" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier))) + identifier) ))))) ;) (if_statement "if ((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)) {\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }" if (parenthesized_expression "((iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait))" ( (binary_expression "(iVar12 != 5) && (image->channel_map[iVar12].traits != UndefinedPixelTrait)" (parenthesized_expression "(iVar12 != 5)" ( (binary_expression "iVar12 != 5" identifier != number_literal) )) && (parenthesized_expression "(image->channel_map[iVar12].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[iVar12].traits != UndefinedPixelTrait" (field_expression "image->channel_map[iVar12].traits" (subscript_expression "image->channel_map[iVar12]" (field_expression "image->channel_map" identifier -> field_identifier) [ identifier ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n              dVar66 = (double)iVar12;\n              if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              iVar58 = 0;\n              iVar12 = *(int *)(puVar56 + 0x2b8dd0);\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));\n              iVar22 = *(int *)(puVar56 + 0x2b8dd4);\n              do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);\n            }" { (expression_statement "dVar66 = (double)iVar12;" (assignment_expression "dVar66 = (double)iVar12" identifier = (cast_expression "(double)iVar12" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar12 < 0) {\n                dVar66 = dVar66 + dVar62;\n              }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n                dVar66 = dVar66 + dVar62;\n              }" { (expression_statement "dVar66 = dVar66 + dVar62;" (assignment_expression "dVar66 = dVar66 + dVar62" identifier = (binary_expression "dVar66 + dVar62" identifier + identifier)) ;) })) (expression_statement "iVar58 = 0;" (assignment_expression "iVar58 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar12 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar10 + -0x66d4,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0))" ( identifier , (binary_expression "iVar10 + -0x66d4" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar66 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar66 >> 0x20)" ( (binary_expression "(ulonglong)dVar66 >> 0x20" (cast_expression "(ulonglong)dVar66" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar66,0)" identifier (argument_list "(dVar66,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "iVar22 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar22 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) (do_statement "do {\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              } while (iVar58 != 7);" do (compound_statement "{\n                (**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));\n                if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }\nLAB_000f2c54:\n                iVar58 = iVar58 + 1;\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);\n              }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                          (file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar12 + -0x66c0,\n                           (int)((ulonglong)((double)iVar58 + dVar60) >> 0x20),\n                           SUB84((double)iVar58 + dVar60,0))" ( identifier , (binary_expression "iVar12 + -0x66c0" identifier + number_literal) , (cast_expression "(int)((ulonglong)((double)iVar58 + dVar60) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)((double)iVar58 + dVar60) >> 0x20)" ( (binary_expression "(ulonglong)((double)iVar58 + dVar60) >> 0x20" (call_expression "(ulonglong)((double)iVar58 + dVar60)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "((double)iVar58 + dVar60)" ( (binary_expression "(double)iVar58 + dVar60" (cast_expression "(double)iVar58" ( (type_descriptor "double" primitive_type) ) identifier) + identifier) ))) >> number_literal) ))) , (call_expression "SUB84((double)iVar58 + dVar60,0)" identifier (argument_list "((double)iVar58 + dVar60,0)" ( (binary_expression "(double)iVar58 + dVar60" (cast_expression "(double)iVar58" ( (type_descriptor "double" primitive_type) ) identifier) + identifier) , number_literal ))) ))) ;) (if_statement "if (0 < *(int *)(iVar9 + 0x90)) {\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }" if (parenthesized_expression "(0 < *(int *)(iVar9 + 0x90))" ( (binary_expression "0 < *(int *)(iVar9 + 0x90)" number_literal < (pointer_expression "*(int *)(iVar9 + 0x90)" * (cast_expression "(int *)(iVar9 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x90)" ( (binary_expression "iVar9 + 0x90" identifier + number_literal) ))))) )) (compound_statement "{\n                  iVar55 = 0;\n                  do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));\n                }" { (expression_statement "iVar55 = 0;" (assignment_expression "iVar55 = 0" identifier = number_literal) ;) (do_statement "do {\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  } while (iVar55 < *(int *)(iVar9 + 0x90));" do (compound_statement "{\n                    while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }\n                    iVar55 = iVar55 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);\n                      if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;\n                      iVar55 = iVar55 + 1;\n                      (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);\n                      if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;\n                    }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b9e18))();" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b9e18))()" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9e18))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9e18)" * (pointer_expression "*(code **)(puVar56 + 0x2b9e18)" * (cast_expression "(code **)(puVar56 + 0x2b9e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9e18)" ( (binary_expression "puVar56 + 0x2b9e18" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + 0x1710,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar11 + 0x1710,uVar29)" ( identifier , (binary_expression "iVar11 + 0x1710" identifier + number_literal) , identifier ))) ;) (if_statement "if (*(int *)(iVar9 + 0x90) + -1 <= iVar55) break;" if (parenthesized_expression "(*(int *)(iVar9 + 0x90) + -1 <= iVar55)" ( (binary_expression "*(int *)(iVar9 + 0x90) + -1 <= iVar55" (binary_expression "*(int *)(iVar9 + 0x90) + -1" (pointer_expression "*(int *)(iVar9 + 0x90)" * (cast_expression "(int *)(iVar9 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x90)" ( (binary_expression "iVar9 + 0x90" identifier + number_literal) )))) + number_literal) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar55 = iVar55 + 1;" (assignment_expression "iVar55 = iVar55 + 1" identifier = (binary_expression "iVar55 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar22 + 0x2948)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar22 + 0x2948)" ( identifier , (binary_expression "iVar22 + 0x2948" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar9 + 0x90) <= iVar55) goto LAB_000f2c54;" if (parenthesized_expression "(*(int *)(iVar9 + 0x90) <= iVar55)" ( (binary_expression "*(int *)(iVar9 + 0x90) <= iVar55" (pointer_expression "*(int *)(iVar9 + 0x90)" * (cast_expression "(int *)(iVar9 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x90)" ( (binary_expression "iVar9 + 0x90" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_000f2c54;" goto statement_identifier ;)) })) (expression_statement "iVar55 = iVar55 + 1;" (assignment_expression "iVar55 = iVar55 + 1" identifier = (binary_expression "iVar55 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar55 < *(int *)(iVar9 + 0x90))" ( (binary_expression "iVar55 < *(int *)(iVar9 + 0x90)" identifier < (pointer_expression "*(int *)(iVar9 + 0x90)" * (cast_expression "(int *)(iVar9 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x90)" ( (binary_expression "iVar9 + 0x90" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_000f2c54:\n                iVar58 = iVar58 + 1;" statement_identifier : (expression_statement "iVar58 = iVar58 + 1;" (assignment_expression "iVar58 = iVar58 + 1" identifier = (binary_expression "iVar58 + 1" identifier + number_literal)) ;)) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar8 + -0x4bdc)" ( identifier , (binary_expression "iVar8 + -0x4bdc" identifier + number_literal) ))) ;) }) while (parenthesized_expression "(iVar58 != 7)" ( (binary_expression "iVar58 != 7" identifier != number_literal) )) ;) })) (expression_statement "iStack_4180 = iStack_4180 + 1;" (assignment_expression "iStack_4180 = iStack_4180 + 1" identifier = (binary_expression "iStack_4180 + 1" identifier + number_literal)) ;) (expression_statement "iStack_418c = iStack_418c + 0xc;" (assignment_expression "iStack_418c = iStack_418c + 0xc" identifier = (binary_expression "iStack_418c + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_4180 < (int)image->number_channels)" ( (binary_expression "iStack_4180 < (int)image->number_channels" identifier < (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier))) )) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b94ac))(iVar9);" (call_expression "(**(code **)(puVar56 + 0x2b94ac))(iVar9)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier ))) ;) })) (if_statement "if (pCStack_4190 != (ChannelFeatures *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }" if (parenthesized_expression "(pCStack_4190 != (ChannelFeatures *)0x0)" ( (binary_expression "pCStack_4190 != (ChannelFeatures *)0x0" identifier != (cast_expression "(ChannelFeatures *)0x0" ( (type_descriptor "ChannelFeatures *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);\n        if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }\n        if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x66b0)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x66b0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (CVar50 == GRAYColorspace) {\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }\n        else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" if (parenthesized_expression "(CVar50 == GRAYColorspace)" ( (binary_expression "CVar50 == GRAYColorspace" identifier == identifier) )) (compound_statement "{\n          PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);\nLAB_000f16e0:\n          PVar41 = image->alpha_trait;\n        }" { (expression_statement "PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190);" (call_expression "PrintChannelFeatures\n                    (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190)" identifier (argument_list "(file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0),\n                     pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (labeled_statement "LAB_000f16e0:\n          PVar41 = image->alpha_trait;" statement_identifier : (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;)) }) (else_clause "else {\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" else (compound_statement "{\n          if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          if ((int)image->number_channels < 1) goto LAB_000f16e0;\n          PVar43 = CyanPixelChannel;\n          do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);\n          PVar41 = image->alpha_trait;\n        }" { (if_statement "if (GRAYColorspace < CVar50) {\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }" if (parenthesized_expression "(GRAYColorspace < CVar50)" ( (binary_expression "GRAYColorspace < CVar50" identifier < identifier) )) (compound_statement "{\n            if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }" { (if_statement "if ((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)) goto LAB_000f348c;" if (parenthesized_expression "((CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace))" ( (binary_expression "(CVar50 != RGBColorspace) && (CVar50 != sRGBColorspace)" (parenthesized_expression "(CVar50 != RGBColorspace)" ( (binary_expression "CVar50 != RGBColorspace" identifier != identifier) )) && (parenthesized_expression "(CVar50 != sRGBColorspace)" ( (binary_expression "CVar50 != sRGBColorspace" identifier != identifier) ))) )) (goto_statement "goto LAB_000f348c;" goto statement_identifier ;)) (expression_statement "PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190);" (call_expression "PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190)" identifier (argument_list "(file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac),\n                       pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x1ac)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190);" (call_expression "PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190)" identifier (argument_list "(file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188),\n                       pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x188)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x188)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190);" (call_expression "PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190)" identifier (argument_list "(file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170),\n                       pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x170)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x170)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;) })) (if_statement "if (CVar50 == CMYKColorspace) {\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }" if (parenthesized_expression "(CVar50 == CMYKColorspace)" ( (binary_expression "CVar50 == CMYKColorspace" identifier == identifier) )) (compound_statement "{\n            PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);\n            PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);\n            goto LAB_000f16e0;\n          }" { (expression_statement "PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190);" (call_expression "PrintChannelFeatures\n                      (file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190)" identifier (argument_list "(file_00,CyanPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c),\n                       pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x17c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x17c)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190);" (call_expression "PrintChannelFeatures\n                      (file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190)" identifier (argument_list "(file_00,CbPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194),\n                       pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x194)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190);" (call_expression "PrintChannelFeatures\n                      (file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190)" identifier (argument_list "(file_00,BluePixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4),\n                       pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x1b4)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190);" (call_expression "PrintChannelFeatures\n                      (file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190)" identifier (argument_list "(file_00,BlackPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164),\n                       pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x164)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x164)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;) })) (labeled_statement "LAB_000f348c:\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (if_statement "if ((int)image->number_channels < 1) goto LAB_000f16e0;" if (parenthesized_expression "((int)image->number_channels < 1)" ( (binary_expression "(int)image->number_channels < 1" (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier)) < number_literal) )) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;)) (expression_statement "PVar43 = CyanPixelChannel;" (assignment_expression "PVar43 = CyanPixelChannel" identifier = identifier) ;) (do_statement "do {\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          } while ((int)PVar43 < (int)image->number_channels);" do (compound_statement "{\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);\n            PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);\n            PVar43 = PVar43 + CbPixelChannel;\n          }" { (expression_statement "(**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728);" (call_expression "(**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6728)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9268)" * (pointer_expression "*(code **)(puVar56 + 0x2b9268)" * (cast_expression "(code **)(puVar56 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9268)" ( (binary_expression "puVar56 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,0x1000,iVar8 + -0x6728)" ( identifier , number_literal , (binary_expression "iVar8 + -0x6728" identifier + number_literal) ))) ;) (expression_statement "PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190);" (call_expression "PrintChannelFeatures(file_00,PVar43,acStack_110c,pCStack_4190)" identifier (argument_list "(file_00,PVar43,acStack_110c,pCStack_4190)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "PVar43 = PVar43 + CbPixelChannel;" (assignment_expression "PVar43 = PVar43 + CbPixelChannel" identifier = (binary_expression "PVar43 + CbPixelChannel" identifier + identifier)) ;) }) while (parenthesized_expression "((int)PVar43 < (int)image->number_channels)" ( (binary_expression "(int)PVar43 < (int)image->number_channels" (cast_expression "(int)PVar43" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier))) )) ;) (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }))) (if_statement "if (PVar41 != UndefinedPixelTrait) {\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }" if (parenthesized_expression "(PVar41 != UndefinedPixelTrait)" ( (binary_expression "PVar41 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n          PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);\n        }" { (expression_statement "PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190);" (call_expression "PrintChannelFeatures\n                    (file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190)" identifier (argument_list "(file_00,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),\n                     pCStack_4190)" ( identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x158)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b94ac))(pCStack_4190);" (call_expression "(**(code **)(puVar56 + 0x2b94ac))(pCStack_4190)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(pCStack_4190)" ( identifier ))) ;) })) (if_statement "if (iVar7 != 0) {\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }\n        if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }\nLAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);\n        if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }\n      }" { (if_statement "if (CVar50 == CMYKColorspace) {\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }" if (parenthesized_expression "(CVar50 == CMYKColorspace)" ( (binary_expression "CVar50 == CMYKColorspace" identifier == identifier) )) (compound_statement "{\n          uVar29 = (**(code **)(puVar56 + 0x2b9e18))();\n          (**(code **)(puVar56 + 0x2b9508))(image,uVar36);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);\n        }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b9e18))();" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b9e18))()" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9e18))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9e18)" * (pointer_expression "*(code **)(puVar56 + 0x2b9e18)" * (cast_expression "(code **)(puVar56 + 0x2b9e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9e18)" ( (binary_expression "puVar56 + 0x2b9e18" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9508))(image,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b9508))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9508))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9508)" * (pointer_expression "*(code **)(puVar56 + 0x2b9508)" * (cast_expression "(code **)(puVar56 + 0x2b9508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9508)" ( (binary_expression "puVar56 + 0x2b9508" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6660,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6660" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (if_statement "if ((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)) {\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }" if (parenthesized_expression "((image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows))" ( (binary_expression "(image->alpha_trait != UndefinedPixelTrait) && (0 < (int)image->rows)" (parenthesized_expression "(image->alpha_trait != UndefinedPixelTrait)" ( (binary_expression "image->alpha_trait != UndefinedPixelTrait" (field_expression "image->alpha_trait" identifier -> field_identifier) != identifier) )) && (parenthesized_expression "(0 < (int)image->rows)" ( (binary_expression "0 < (int)image->rows" number_literal < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) ))) )) (compound_statement "{\n          uVar63 = 0;\n          sVar37 = image->columns;\n          iVar7 = 0;\n          pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n          while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }\n        }" { (expression_statement "uVar63 = 0;" (assignment_expression "uVar63 = 0" identifier = number_literal) ;) (expression_statement "sVar37 = image->columns;" (assignment_expression "sVar37 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9c50);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9c50)" * (cast_expression "(code **)(puVar56 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9c50)" ( (binary_expression "puVar56 + 0x2b9c50" identifier + number_literal) ))))) ;) (while_statement "while (iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0) {\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }" while (parenthesized_expression "(iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0)" ( (comma_expression "iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36), iVar8 != 0" (assignment_expression "iVar8 = (*pcVar59)(image,0,iVar7,sVar37,1,uVar36)" identifier = (call_expression "(*pcVar59)(image,0,iVar7,sVar37,1,uVar36)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(image,0,iVar7,sVar37,1,uVar36)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) )) (compound_statement "{\n            sVar37 = image->columns;\n            sVar40 = 0;\n            if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }\n            iVar7 = iVar7 + 1;\n            pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n            if ((int)image->rows <= iVar7) break;\n          }" { (expression_statement "sVar37 = image->columns;" (assignment_expression "sVar37 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "sVar40 = 0;" (assignment_expression "sVar40 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)sVar37) {\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }" if (parenthesized_expression "(0 < (int)sVar37)" ( (binary_expression "0 < (int)sVar37" number_literal < (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);\n            }" { (do_statement "do {\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              } while (sVar37 != sVar40);" do (compound_statement "{\n                if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }\n                sVar40 = sVar40 + 1;\n                iVar8 = iVar8 + image->number_channels * 4;\n              }" { (if_statement "if ((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)) {\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }" if (parenthesized_expression "((image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63))" ( (binary_expression "(image->channel_map[4].traits != UndefinedPixelTrait) &&\n                   (*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)" (parenthesized_expression "(image->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits != UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) && (parenthesized_expression "(*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63)" ( (binary_expression "*(float *)(iVar8 + image->channel_map[4].offset * 4) == (float)uVar63" (pointer_expression "*(float *)(iVar8 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar8 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar8 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))) == (cast_expression "(float)uVar63" ( (type_descriptor "float" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                  (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n                  (**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);\n                  uStack_4158 = image->fuzz;\n                  aCStack_4168[0] = image->storage_class;\n                  aCStack_4168[1] = image->colorspace;\n                  sStack_4150 = image->depth;\n                  aCStack_4160[0] = image->alpha_trait;\n                  dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);\n                  if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }\n                  (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);\n                  (**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);\n                  goto LAB_000f1940;\n                }" { (expression_statement "(**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);" (call_expression "(**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b97a0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b97a0)" * (pointer_expression "*(code **)(puVar56 + 0x2b97a0)" * (cast_expression "(code **)(puVar56 + 0x2b97a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b97a0)" ( (binary_expression "puVar56 + 0x2b97a0" identifier + number_literal) ))))) )) (argument_list "(image,aCStack_4168)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58);" (call_expression "(**(code **)(puVar56 + 0x2b94e0))(aCStack_4168,0,0x58)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94e0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94e0)" * (pointer_expression "*(code **)(puVar56 + 0x2b94e0)" * (cast_expression "(code **)(puVar56 + 0x2b94e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94e0)" ( (binary_expression "puVar56 + 0x2b94e0" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "uStack_4158 = image->fuzz;" (assignment_expression "uStack_4158 = image->fuzz" identifier = (field_expression "image->fuzz" identifier -> field_identifier)) ;) (expression_statement "aCStack_4168[0] = image->storage_class;" (assignment_expression "aCStack_4168[0] = image->storage_class" (subscript_expression "aCStack_4168[0]" identifier [ number_literal ]) = (field_expression "image->storage_class" identifier -> field_identifier)) ;) (expression_statement "aCStack_4168[1] = image->colorspace;" (assignment_expression "aCStack_4168[1] = image->colorspace" (subscript_expression "aCStack_4168[1]" identifier [ number_literal ]) = (field_expression "image->colorspace" identifier -> field_identifier)) ;) (expression_statement "sStack_4150 = image->depth;" (assignment_expression "sStack_4150 = image->depth" identifier = (field_expression "image->depth" identifier -> field_identifier)) ;) (expression_statement "aCStack_4160[0] = image->alpha_trait;" (assignment_expression "aCStack_4160[0] = image->alpha_trait" (subscript_expression "aCStack_4160[0]" identifier [ number_literal ]) = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) (expression_statement "dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58);" (assignment_expression "dStack_4120 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58)" identifier = (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1a58)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1a58" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                    pPVar31 = image->channel_map;\n                    dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);\n                    dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);\n                    dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);\n                    if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }\n                    if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }\n                    if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }\n                  }" { (expression_statement "pPVar31 = image->channel_map;" (assignment_expression "pPVar31 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4);" (assignment_expression "dStack_4140 = (double)*(float *)(iVar8 + pPVar31->offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + pPVar31->offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + pPVar31->offset * 4)" * (cast_expression "(float *)(iVar8 + pPVar31->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + pPVar31->offset * 4)" ( (binary_expression "iVar8 + pPVar31->offset * 4" identifier + (binary_expression "pPVar31->offset * 4" (field_expression "pPVar31->offset" identifier -> field_identifier) * number_literal)) )))))) ;) (expression_statement "dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4);" (assignment_expression "dStack_4138 = (double)*(float *)(iVar8 + pPVar31[1].offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + pPVar31[1].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + pPVar31[1].offset * 4)" * (cast_expression "(float *)(iVar8 + pPVar31[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + pPVar31[1].offset * 4)" ( (binary_expression "iVar8 + pPVar31[1].offset * 4" identifier + (binary_expression "pPVar31[1].offset * 4" (field_expression "pPVar31[1].offset" (subscript_expression "pPVar31[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) (expression_statement "dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4);" (assignment_expression "dStack_4130 = (double)*(float *)(iVar8 + pPVar31[2].offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + pPVar31[2].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + pPVar31[2].offset * 4)" * (cast_expression "(float *)(iVar8 + pPVar31[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + pPVar31[2].offset * 4)" ( (binary_expression "iVar8 + pPVar31[2].offset * 4" identifier + (binary_expression "pPVar31[2].offset * 4" (field_expression "pPVar31[2].offset" (subscript_expression "pPVar31[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) (if_statement "if (pPVar31[3].traits != UndefinedPixelTrait) {\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }" if (parenthesized_expression "(pPVar31[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar31[3].traits != UndefinedPixelTrait" (field_expression "pPVar31[3].traits" (subscript_expression "pPVar31[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                      dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);\n                    }" { (expression_statement "dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4);" (assignment_expression "dStack_4128 = (double)*(float *)(iVar8 + pPVar31[3].offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + pPVar31[3].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + pPVar31[3].offset * 4)" * (cast_expression "(float *)(iVar8 + pPVar31[3].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + pPVar31[3].offset * 4)" ( (binary_expression "iVar8 + pPVar31[3].offset * 4" identifier + (binary_expression "pPVar31[3].offset * 4" (field_expression "pPVar31[3].offset" (subscript_expression "pPVar31[3]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) })) (if_statement "if (pPVar31[4].traits != UndefinedPixelTrait) {\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }" if (parenthesized_expression "(pPVar31[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar31[4].traits != UndefinedPixelTrait" (field_expression "pPVar31[4].traits" (subscript_expression "pPVar31[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                      aCStack_4160[0] = BlendPixelTrait;\n                      dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);\n                    }" { (expression_statement "aCStack_4160[0] = BlendPixelTrait;" (assignment_expression "aCStack_4160[0] = BlendPixelTrait" (subscript_expression "aCStack_4160[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4);" (assignment_expression "dStack_4120 = (double)*(float *)(iVar8 + pPVar31[4].offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + pPVar31[4].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + pPVar31[4].offset * 4)" * (cast_expression "(float *)(iVar8 + pPVar31[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + pPVar31[4].offset * 4)" ( (binary_expression "iVar8 + pPVar31[4].offset * 4" identifier + (binary_expression "pPVar31[4].offset * 4" (field_expression "pPVar31[4].offset" (subscript_expression "pPVar31[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) })) (if_statement "if (pPVar31[5].traits != UndefinedPixelTrait) {\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }" if (parenthesized_expression "(pPVar31[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar31[5].traits != UndefinedPixelTrait" (field_expression "pPVar31[5].traits" (subscript_expression "pPVar31[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                      dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);\n                    }" { (expression_statement "dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4);" (assignment_expression "dStack_4118 = (double)*(float *)(iVar8 + pPVar31[5].offset * 4)" identifier = (cast_expression "(double)*(float *)(iVar8 + pPVar31[5].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar8 + pPVar31[5].offset * 4)" * (cast_expression "(float *)(iVar8 + pPVar31[5].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + pPVar31[5].offset * 4)" ( (binary_expression "iVar8 + pPVar31[5].offset * 4" identifier + (binary_expression "pPVar31[5].offset * 4" (field_expression "pPVar31[5].offset" (subscript_expression "pPVar31[5]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) })) })) (expression_statement "(**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,acStack_110c,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b92c0)" * (cast_expression "(code **)(puVar56 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92c0)" ( (binary_expression "puVar56 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(image,aCStack_4168,1,acStack_110c,uVar36)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6640,acStack_110c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6640" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b94c0)" * (cast_expression "(code **)(puVar56 + 0x2b94c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94c0)" ( (binary_expression "puVar56 + 0x2b94c0" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,1,acStack_110c)" ( identifier , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                            (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6630,acStack_110c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6630" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000f1940;" goto statement_identifier ;) })) (expression_statement "sVar40 = sVar40 + 1;" (assignment_expression "sVar40 = sVar40 + 1" identifier = (binary_expression "sVar40 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + image->number_channels * 4;" (assignment_expression "iVar8 = iVar8 + image->number_channels * 4" identifier = (binary_expression "iVar8 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal))) ;) }) while (parenthesized_expression "(sVar37 != sVar40)" ( (binary_expression "sVar37 != sVar40" identifier != identifier) )) ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9c50);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9c50)" * (cast_expression "(code **)(puVar56 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9c50)" ( (binary_expression "puVar56 + 0x2b9c50" identifier + number_literal) ))))) ;) (if_statement "if ((int)image->rows <= iVar7) break;" if (parenthesized_expression "((int)image->rows <= iVar7)" ( (binary_expression "(int)image->rows <= iVar7" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) <= identifier) )) (break_statement "break;" break ;)) })) })) (labeled_statement "LAB_000f1940:\n        iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);" statement_identifier : (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b93f0))(image,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b93f0))(image,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b93f0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b93f0)" * (pointer_expression "*(code **)(puVar56 + 0x2b93f0)" * (cast_expression "(code **)(puVar56 + 0x2b93f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93f0)" ( (binary_expression "puVar56 + 0x2b93f0" identifier + number_literal) ))))) )) (argument_list "(image,uVar36)" ( identifier , identifier )))) ;)) (if_statement "if (iVar7 == 0) {\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }\n        else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);\n          iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);\n          if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }\n        }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b99ac)" * (cast_expression "(code **)(puVar56 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99ac)" ( (binary_expression "puVar56 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6604)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6604" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b928c))(uVar29)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b928c))(uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b928c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b928c)" * (pointer_expression "*(code **)(puVar56 + 0x2b928c)" * (cast_expression "(code **)(puVar56 + 0x2b928c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b928c)" ( (binary_expression "puVar56 + 0x2b928c" identifier + number_literal) ))))) )) (argument_list "(uVar29)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n            dVar60 = (double)iVar7;\n            if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));\n          }" { (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar56 + 0x2b97a4)" * (cast_expression "(code **)(puVar56 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b97a4)" ( (binary_expression "puVar56 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(image,0,uVar36)" ( identifier , number_literal , identifier )))) ;) (expression_statement "dVar60 = (double)iVar7;" (assignment_expression "dVar60 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n            }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                      (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar60 >> 0x20),SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) })) }) (else_clause "else {\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }" else (compound_statement "{\n          iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);\n          dVar60 = (double)iVar7;\n          if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);\n        }" { (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b97a4))(image,0,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar56 + 0x2b97a4)" * (cast_expression "(code **)(puVar56 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b97a4)" ( (binary_expression "puVar56 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(image,0,uVar36)" ( identifier , number_literal , identifier )))) ;) (expression_statement "dVar60 = (double)iVar7;" (assignment_expression "dVar60 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6614)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6614" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b97a4))(image,file_00,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar56 + 0x2b97a4)" * (cast_expression "(code **)(puVar56 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b97a4)" ( (binary_expression "puVar56 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(image,file_00,uVar36)" ( identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (image->storage_class == PseudoClass) {\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }\n      else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }" if (parenthesized_expression "(image->storage_class == PseudoClass)" ( (binary_expression "image->storage_class == PseudoClass" (field_expression "image->storage_class" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        dVar60 = (double)(int)image->colors;\n        if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < image->colors) goto LAB_000f19dc;\n        (**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);\n        pPVar53 = image->colormap;\n        if ((int)image->colors < 1) goto LAB_000f19dc;\n        iVar8 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;\n        iVar9 = *(int *)(puVar56 + 0x2b8dd8);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar7 = 0;\n        do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }" { (expression_statement "dVar60 = (double)(int)image->colors;" (assignment_expression "dVar60 = (double)(int)image->colors" identifier = (cast_expression "(double)(int)image->colors" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->colors" ( (type_descriptor "int" primitive_type) ) (field_expression "image->colors" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->colors < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)image->colors < 0)" ( (binary_expression "(int)image->colors < 0" (cast_expression "(int)image->colors" ( (type_descriptor "int" primitive_type) ) (field_expression "image->colors" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x65ec" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65d0)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x65d0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (0x400 < image->colors) goto LAB_000f19dc;" if (parenthesized_expression "(0x400 < image->colors)" ( (binary_expression "0x400 < image->colors" number_literal < (field_expression "image->colors" identifier -> field_identifier)) )) (goto_statement "goto LAB_000f19dc;" goto statement_identifier ;)) (expression_statement "(**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168);" (call_expression "(**(code **)(puVar56 + 0x2b97a0))(image,aCStack_4168)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b97a0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b97a0)" * (pointer_expression "*(code **)(puVar56 + 0x2b97a0)" * (cast_expression "(code **)(puVar56 + 0x2b97a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b97a0)" ( (binary_expression "puVar56 + 0x2b97a0" identifier + number_literal) ))))) )) (argument_list "(image,aCStack_4168)" ( identifier , identifier ))) ;) (expression_statement "pPVar53 = image->colormap;" (assignment_expression "pPVar53 = image->colormap" identifier = (field_expression "image->colormap" identifier -> field_identifier)) ;) (if_statement "if ((int)image->colors < 1) goto LAB_000f19dc;" if (parenthesized_expression "((int)image->colors < 1)" ( (binary_expression "(int)image->colors < 1" (cast_expression "(int)image->colors" ( (type_descriptor "int" primitive_type) ) (field_expression "image->colors" identifier -> field_identifier)) < number_literal) )) (goto_statement "goto LAB_000f19dc;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd8);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd8)" * (cast_expression "(int *)(puVar56 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd8)" ( (binary_expression "puVar56 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804;" (assignment_expression "iVar11 = *(int *)(puVar56 + 0x2b8dd4) + 0x2804" identifier = (binary_expression "*(int *)(puVar56 + 0x2b8dd4) + 0x2804" (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8dd8);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd8)" * (cast_expression "(int *)(puVar56 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd8)" ( (binary_expression "puVar56 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        } while (iVar12 < (int)image->colors);" do (compound_statement "{\n          pPVar25 = pPVar53;\n          pCVar5 = aCStack_4168;\n          do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);\n          CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);\n          pcVar59 = *(code **)(puVar56 + 0x2b9d28);\n          pCVar28[4] = *(ClassType *)pPVar25;\n          pCVar28[5] = CVar34;\n          (*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);\n          (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n          (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);\n          if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }\n          pPVar53 = pPVar53 + 1;\n          (*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);\n          (**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);\n          (**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);\n          iVar12 = iVar7 + 1;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);\n          iVar7 = iVar12;\n        }" { (expression_statement "pPVar25 = pPVar53;" (assignment_expression "pPVar25 = pPVar53" identifier = identifier) ;) (expression_statement "pCVar5 = aCStack_4168;" (assignment_expression "pCVar5 = aCStack_4168" identifier = identifier) ;) (do_statement "do {\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          } while (pPVar25 != (PixelInfo *)&pPVar53->index);" do (compound_statement "{\n            pCVar28 = pCVar5;\n            pPVar24 = pPVar25;\n            puStack_4198 = auStack_210c;\n            pPVar25 = (PixelInfo *)&pPVar24->fuzz;\n            CVar38 = pPVar24->colorspace;\n            CVar35 = pPVar24->alpha_trait;\n            CVar34 = *(ClassType *)&pPVar24->field_0xc;\n            *pCVar28 = pPVar24->storage_class;\n            pCVar28[1] = CVar38;\n            pCVar28[2] = CVar35;\n            pCVar28[3] = CVar34;\n            pCVar5 = pCVar28 + 4;\n          }" { (expression_statement "pCVar28 = pCVar5;" (assignment_expression "pCVar28 = pCVar5" identifier = identifier) ;) (expression_statement "pPVar24 = pPVar25;" (assignment_expression "pPVar24 = pPVar25" identifier = identifier) ;) (expression_statement "puStack_4198 = auStack_210c;" (assignment_expression "puStack_4198 = auStack_210c" identifier = identifier) ;) (expression_statement "pPVar25 = (PixelInfo *)&pPVar24->fuzz;" (assignment_expression "pPVar25 = (PixelInfo *)&pPVar24->fuzz" identifier = (cast_expression "(PixelInfo *)&pPVar24->fuzz" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar24->fuzz" & (field_expression "pPVar24->fuzz" identifier -> field_identifier)))) ;) (expression_statement "CVar38 = pPVar24->colorspace;" (assignment_expression "CVar38 = pPVar24->colorspace" identifier = (field_expression "pPVar24->colorspace" identifier -> field_identifier)) ;) (expression_statement "CVar35 = pPVar24->alpha_trait;" (assignment_expression "CVar35 = pPVar24->alpha_trait" identifier = (field_expression "pPVar24->alpha_trait" identifier -> field_identifier)) ;) (expression_statement "CVar34 = *(ClassType *)&pPVar24->field_0xc;" (assignment_expression "CVar34 = *(ClassType *)&pPVar24->field_0xc" identifier = (pointer_expression "*(ClassType *)&pPVar24->field_0xc" * (cast_expression "(ClassType *)&pPVar24->field_0xc" ( (type_descriptor "ClassType *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar24->field_0xc" & (field_expression "pPVar24->field_0xc" identifier -> field_identifier))))) ;) (expression_statement "*pCVar28 = pPVar24->storage_class;" (assignment_expression "*pCVar28 = pPVar24->storage_class" (pointer_expression "*pCVar28" * identifier) = (field_expression "pPVar24->storage_class" identifier -> field_identifier)) ;) (expression_statement "pCVar28[1] = CVar38;" (assignment_expression "pCVar28[1] = CVar38" (subscript_expression "pCVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pCVar28[2] = CVar35;" (assignment_expression "pCVar28[2] = CVar35" (subscript_expression "pCVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pCVar28[3] = CVar34;" (assignment_expression "pCVar28[3] = CVar34" (subscript_expression "pCVar28[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pCVar5 = pCVar28 + 4;" (assignment_expression "pCVar5 = pCVar28 + 4" identifier = (binary_expression "pCVar28 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pPVar25 != (PixelInfo *)&pPVar53->index)" ( (binary_expression "pPVar25 != (PixelInfo *)&pPVar53->index" identifier != (cast_expression "(PixelInfo *)&pPVar53->index" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar53->index" & (field_expression "pPVar53->index" identifier -> field_identifier)))) )) ;) (expression_statement "CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4);" (assignment_expression "CVar34 = *(ClassType *)((int)&pPVar24->fuzz + 4)" identifier = (pointer_expression "*(ClassType *)((int)&pPVar24->fuzz + 4)" * (cast_expression "(ClassType *)((int)&pPVar24->fuzz + 4)" ( (type_descriptor "ClassType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPVar24->fuzz + 4)" ( (binary_expression "(int)&pPVar24->fuzz + 4" (cast_expression "(int)&pPVar24->fuzz" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPVar24->fuzz" & (field_expression "pPVar24->fuzz" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9d28);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9d28)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9d28)" * (cast_expression "(code **)(puVar56 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d28)" ( (binary_expression "puVar56 + 0x2b9d28" identifier + number_literal) ))))) ;) (expression_statement "pCVar28[4] = *(ClassType *)pPVar25;" (assignment_expression "pCVar28[4] = *(ClassType *)pPVar25" (subscript_expression "pCVar28[4]" identifier [ number_literal ]) = (pointer_expression "*(ClassType *)pPVar25" * (cast_expression "(ClassType *)pPVar25" ( (type_descriptor "ClassType *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pCVar28[5] = CVar34;" (assignment_expression "pCVar28[5] = CVar34" (subscript_expression "pCVar28[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000);" (call_expression "(*pcVar59)(acStack_110c,iVar8 + -0xad8,0x1000)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(acStack_110c,iVar8 + -0xad8,0x1000)" ( identifier , (binary_expression "iVar8 + -0xad8" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ab8)" * (cast_expression "(code **)(puVar56 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ab8)" ( (binary_expression "puVar56 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,0,2,acStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);" (call_expression "(**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d84)" * (cast_expression "(code **)(puVar56 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d84)" ( (binary_expression "puVar56 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,iVar11,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ab8)" * (cast_expression "(code **)(puVar56 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ab8)" ( (binary_expression "puVar56 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,1,2,acStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);" (call_expression "(**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d84)" * (cast_expression "(code **)(puVar56 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d84)" ( (binary_expression "puVar56 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,iVar11,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ab8)" * (cast_expression "(code **)(puVar56 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ab8)" ( (binary_expression "puVar56 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,2,2,acStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (if_statement "if (aCStack_4168[1] == CMYKColorspace) {\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }" if (parenthesized_expression "(aCStack_4168[1] == CMYKColorspace)" ( (binary_expression "aCStack_4168[1] == CMYKColorspace" (subscript_expression "aCStack_4168[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n            (**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);\n          }" { (expression_statement "(**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000);" (call_expression "(**(code **)(puVar56 + 0x2b9d84))(acStack_110c,iVar11,0x1000)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d84)" * (cast_expression "(code **)(puVar56 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d84)" ( (binary_expression "puVar56 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,iVar11,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ab8)" * (cast_expression "(code **)(puVar56 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ab8)" ( (binary_expression "puVar56 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,3,2,acStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) })) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9d84);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9d84)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9d84)" * (cast_expression "(code **)(puVar56 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d84)" ( (binary_expression "puVar56 + 0x2b9d84" identifier + number_literal) ))))) ;) (if_statement "if (aCStack_4160[0] != UndefinedPixelTrait) {\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }" if (parenthesized_expression "(aCStack_4160[0] != UndefinedPixelTrait)" ( (binary_expression "aCStack_4160[0] != UndefinedPixelTrait" (subscript_expression "aCStack_4160[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n            (*pcVar59)(acStack_110c,iVar11,0x1000);\n            (**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);\n            pcVar59 = *(code **)(puVar56 + 0x2b9d84);\n          }" { (expression_statement "(*pcVar59)(acStack_110c,iVar11,0x1000);" (call_expression "(*pcVar59)(acStack_110c,iVar11,0x1000)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(acStack_110c,iVar11,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ab8)" * (cast_expression "(code **)(puVar56 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ab8)" ( (binary_expression "puVar56 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,4,2,acStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9d84);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9d84)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9d84)" * (cast_expression "(code **)(puVar56 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d84)" ( (binary_expression "puVar56 + 0x2b9d84" identifier + number_literal) ))))) ;) })) (expression_statement "pPVar53 = pPVar53 + 1;" (assignment_expression "pPVar53 = pPVar53 + 1" identifier = (binary_expression "pPVar53 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000);" (call_expression "(*pcVar59)(acStack_110c,iVar9 + -0x6e0,0x1000)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(acStack_110c,iVar9 + -0x6e0,0x1000)" ( identifier , (binary_expression "iVar9 + -0x6e0" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b92c0))(image,aCStack_4168,1,auStack_410c,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b92c0)" * (cast_expression "(code **)(puVar56 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92c0)" ( (binary_expression "puVar56 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(image,aCStack_4168,1,auStack_410c,uVar36)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198);" (call_expression "(**(code **)(puVar56 + 0x2b94c0))(aCStack_4168,1,puStack_4198)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b94c0)" * (cast_expression "(code **)(puVar56 + 0x2b94c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94c0)" ( (binary_expression "puVar56 + 0x2b94c0" identifier + number_literal) ))))) )) (argument_list "(aCStack_4168,1,puStack_4198)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar12 = iVar7 + 1;" (assignment_expression "iVar12 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar10 + -0x65c0,(int)((ulonglong)(double)iVar7 >> 0x20),\n                     SUB84((double)iVar7,0),acStack_110c,puStack_4198,auStack_410c)" ( identifier , (binary_expression "iVar10 + -0x65c0" identifier + number_literal) , (cast_expression "(int)((ulonglong)(double)iVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(double)iVar7 >> 0x20)" ( (binary_expression "(ulonglong)(double)iVar7 >> 0x20" (cast_expression "(ulonglong)(double)iVar7" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) >> number_literal) ))) , (call_expression "SUB84((double)iVar7,0)" identifier (argument_list "((double)iVar7,0)" ( (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) , number_literal ))) , identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = iVar12;" (assignment_expression "iVar7 = iVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 < (int)image->colors)" ( (binary_expression "iVar12 < (int)image->colors" identifier < (cast_expression "(int)image->colors" ( (type_descriptor "int" primitive_type) ) (field_expression "image->colors" identifier -> field_identifier))) )) ;) (expression_statement "uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);" (assignment_expression "uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4)" * (cast_expression "(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(image->error).mean_error_per_pixel + 4)" ( (binary_expression "(int)&(image->error).mean_error_per_pixel + 4" (cast_expression "(int)&(image->error).mean_error_per_pixel" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(image->error).mean_error_per_pixel" & (field_expression "(image->error).mean_error_per_pixel" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }" else (compound_statement "{\nLAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);\n      }" { (labeled_statement "LAB_000f19dc:\n        uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);" statement_identifier : (expression_statement "uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4);" (assignment_expression "uVar29 = *(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4)" * (cast_expression "(undefined4 *)((int)&(image->error).mean_error_per_pixel + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(image->error).mean_error_per_pixel + 4)" ( (binary_expression "(int)&(image->error).mean_error_per_pixel + 4" (cast_expression "(int)&(image->error).mean_error_per_pixel" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(image->error).mean_error_per_pixel" & (field_expression "(image->error).mean_error_per_pixel" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;)) }))) (expression_statement "puStack_4198 = auStack_210c;" (assignment_expression "puStack_4198 = auStack_210c" identifier = identifier) ;) (if_statement "if ((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }" if (parenthesized_expression "((double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0)" ( (binary_expression "(double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29) != 0.0" (cast_expression "(double)CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29)" identifier (argument_list "(*(undefined4 *)&(image->error).mean_error_per_pixel,uVar29)" ( (pointer_expression "*(undefined4 *)&(image->error).mean_error_per_pixel" * (cast_expression "(undefined4 *)&(image->error).mean_error_per_pixel" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(image->error).mean_error_per_pixel" & (field_expression "(image->error).mean_error_per_pixel" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier)))) , identifier )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x65ac)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x65ac" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if ((image->error).normalized_mean_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }" if (parenthesized_expression "((image->error).normalized_mean_error != 0.0)" ( (binary_expression "(image->error).normalized_mean_error != 0.0" (field_expression "(image->error).normalized_mean_error" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -26000)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -26000" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b924c);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if ((image->error).normalized_maximum_error != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" if (parenthesized_expression "((image->error).normalized_maximum_error != 0.0)" ( (binary_expression "(image->error).normalized_maximum_error != 0.0" (field_expression "(image->error).normalized_maximum_error" (parenthesized_expression "(image->error)" ( (field_expression "image->error" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6570)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6570" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b924c);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar29 = (*pcVar59)(0x23,image->rendering_intent);" (assignment_expression "uVar29 = (*pcVar59)(0x23,image->rendering_intent)" identifier = (call_expression "(*pcVar59)(0x23,image->rendering_intent)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(0x23,image->rendering_intent)" ( number_literal , (field_expression "image->rendering_intent" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6550,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6550" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (image->gamma != 0.0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }" if (parenthesized_expression "(image->gamma != 0.0)" ( (binary_expression "image->gamma != 0.0" (field_expression "image->gamma" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6538)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6538" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if (((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }" if (parenthesized_expression "(((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0))" ( (binary_expression "((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)) ||\n         ((image->chromaticity).white_point.x != 0.0)" (parenthesized_expression "((((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0))" ( (binary_expression "(((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)) ||\n          ((image->chromaticity).blue_primary.x != 0.0)" (parenthesized_expression "(((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0))" ( (binary_expression "((image->chromaticity).red_primary.x != 0.0) ||\n           ((image->chromaticity).green_primary.x != 0.0)" (parenthesized_expression "((image->chromaticity).red_primary.x != 0.0)" ( (binary_expression "(image->chromaticity).red_primary.x != 0.0" (field_expression "(image->chromaticity).red_primary.x" (field_expression "(image->chromaticity).red_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) != number_literal) )) || (parenthesized_expression "((image->chromaticity).green_primary.x != 0.0)" ( (binary_expression "(image->chromaticity).green_primary.x != 0.0" (field_expression "(image->chromaticity).green_primary.x" (field_expression "(image->chromaticity).green_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) != number_literal) ))) )) || (parenthesized_expression "((image->chromaticity).blue_primary.x != 0.0)" ( (binary_expression "(image->chromaticity).blue_primary.x != 0.0" (field_expression "(image->chromaticity).blue_primary.x" (field_expression "(image->chromaticity).blue_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) != number_literal) ))) )) || (parenthesized_expression "((image->chromaticity).white_point.x != 0.0)" ( (binary_expression "(image->chromaticity).white_point.x != 0.0" (field_expression "(image->chromaticity).white_point.x" (field_expression "(image->chromaticity).white_point" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6528)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6528" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6514,\n                   *(undefined4 *)&(image->chromaticity).red_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4),\n                   (image->chromaticity).red_primary.y)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6514" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)&(image->chromaticity).red_primary.x" * (cast_expression "(undefined4 *)&(image->chromaticity).red_primary.x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(image->chromaticity).red_primary.x" & (field_expression "(image->chromaticity).red_primary.x" (field_expression "(image->chromaticity).red_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) , (pointer_expression "*(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4)" * (cast_expression "(undefined4 *)((int)&(image->chromaticity).red_primary.x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(image->chromaticity).red_primary.x + 4)" ( (binary_expression "(int)&(image->chromaticity).red_primary.x + 4" (cast_expression "(int)&(image->chromaticity).red_primary.x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(image->chromaticity).red_primary.x" & (field_expression "(image->chromaticity).red_primary.x" (field_expression "(image->chromaticity).red_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) , (field_expression "(image->chromaticity).red_primary.y" (field_expression "(image->chromaticity).red_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64f8,\n                   *(undefined4 *)&(image->chromaticity).green_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4),\n                   (image->chromaticity).green_primary.y)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x64f8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)&(image->chromaticity).green_primary.x" * (cast_expression "(undefined4 *)&(image->chromaticity).green_primary.x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(image->chromaticity).green_primary.x" & (field_expression "(image->chromaticity).green_primary.x" (field_expression "(image->chromaticity).green_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) , (pointer_expression "*(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4)" * (cast_expression "(undefined4 *)((int)&(image->chromaticity).green_primary.x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(image->chromaticity).green_primary.x + 4)" ( (binary_expression "(int)&(image->chromaticity).green_primary.x + 4" (cast_expression "(int)&(image->chromaticity).green_primary.x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(image->chromaticity).green_primary.x" & (field_expression "(image->chromaticity).green_primary.x" (field_expression "(image->chromaticity).green_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) , (field_expression "(image->chromaticity).green_primary.y" (field_expression "(image->chromaticity).green_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64dc,\n                   *(undefined4 *)&(image->chromaticity).blue_primary.x,\n                   *(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4),\n                   (image->chromaticity).blue_primary.y)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x64dc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)&(image->chromaticity).blue_primary.x" * (cast_expression "(undefined4 *)&(image->chromaticity).blue_primary.x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(image->chromaticity).blue_primary.x" & (field_expression "(image->chromaticity).blue_primary.x" (field_expression "(image->chromaticity).blue_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) , (pointer_expression "*(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4)" * (cast_expression "(undefined4 *)((int)&(image->chromaticity).blue_primary.x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(image->chromaticity).blue_primary.x + 4)" ( (binary_expression "(int)&(image->chromaticity).blue_primary.x + 4" (cast_expression "(int)&(image->chromaticity).blue_primary.x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(image->chromaticity).blue_primary.x" & (field_expression "(image->chromaticity).blue_primary.x" (field_expression "(image->chromaticity).blue_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) , (field_expression "(image->chromaticity).blue_primary.y" (field_expression "(image->chromaticity).blue_primary" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64c0,\n                   *(undefined4 *)&(image->chromaticity).white_point.x,\n                   *(undefined4 *)((int)&(image->chromaticity).white_point.x + 4),\n                   (image->chromaticity).white_point.y)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x64c0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)&(image->chromaticity).white_point.x" * (cast_expression "(undefined4 *)&(image->chromaticity).white_point.x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(image->chromaticity).white_point.x" & (field_expression "(image->chromaticity).white_point.x" (field_expression "(image->chromaticity).white_point" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) , (pointer_expression "*(undefined4 *)((int)&(image->chromaticity).white_point.x + 4)" * (cast_expression "(undefined4 *)((int)&(image->chromaticity).white_point.x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(image->chromaticity).white_point.x + 4)" ( (binary_expression "(int)&(image->chromaticity).white_point.x + 4" (cast_expression "(int)&(image->chromaticity).white_point.x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(image->chromaticity).white_point.x" & (field_expression "(image->chromaticity).white_point.x" (field_expression "(image->chromaticity).white_point" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) , (field_expression "(image->chromaticity).white_point.y" (field_expression "(image->chromaticity).white_point" (parenthesized_expression "(image->chromaticity)" ( (field_expression "image->chromaticity" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) })) (expression_statement "sVar40 = (image->extract_info).width;" (assignment_expression "sVar40 = (image->extract_info).width" identifier = (field_expression "(image->extract_info).width" (parenthesized_expression "(image->extract_info)" ( (field_expression "image->extract_info" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar37 = (image->extract_info).height;" (assignment_expression "sVar37 = (image->extract_info).height" identifier = (field_expression "(image->extract_info).height" (parenthesized_expression "(image->extract_info)" ( (field_expression "image->extract_info" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar40 * sVar37 != 0) {\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }" if (parenthesized_expression "(sVar40 * sVar37 != 0)" ( (binary_expression "sVar40 * sVar37 != 0" (binary_expression "sVar40 * sVar37" identifier * identifier) != number_literal) )) (compound_statement "{\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);\n      }" { (expression_statement "dVar60 = (double)(int)sVar40;" (assignment_expression "dVar60 = (double)(int)sVar40" identifier = (cast_expression "(double)(int)sVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar40 < 0)" ( (binary_expression "(int)sVar40 < 0" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar62 = (double)(int)sVar37;" (assignment_expression "dVar62 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)(image->extract_info).x,\n                   (double)(image->extract_info).y)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x64a4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)(image->extract_info).x" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->extract_info).x" (parenthesized_expression "(image->extract_info)" ( (field_expression "image->extract_info" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(double)(image->extract_info).y" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->extract_info).y" (parenthesized_expression "(image->extract_info)" ( (field_expression "image->extract_info" identifier -> field_identifier) )) . field_identifier)) ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b92c0))(image,&image->matte_color,1,auStack_410c,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b92c0)" * (cast_expression "(code **)(puVar56 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92c0)" ( (binary_expression "puVar56 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(image,&image->matte_color,1,auStack_410c,uVar36)" ( identifier , (pointer_expression "&image->matte_color" & (field_expression "image->matte_color" identifier -> field_identifier)) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6478,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6478" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b92c0))(image,&image->background_color,1,auStack_410c,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b92c0)" * (cast_expression "(code **)(puVar56 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92c0)" ( (binary_expression "puVar56 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(image,&image->background_color,1,auStack_410c,uVar36)" ( identifier , (pointer_expression "&image->background_color" & (field_expression "image->background_color" identifier -> field_identifier)) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6464,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6464" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b92c0))(image,&image->border_color,1,auStack_410c,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b92c0)" * (cast_expression "(code **)(puVar56 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92c0)" ( (binary_expression "puVar56 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(image,&image->border_color,1,auStack_410c,uVar36)" ( identifier , (pointer_expression "&image->border_color" & (field_expression "image->border_color" identifier -> field_identifier)) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x644c,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x644c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b92c0))(image,&image->transparent_color,1,auStack_410c,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar56 + 0x2b92c0)" * (cast_expression "(code **)(puVar56 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92c0)" ( (binary_expression "puVar56 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(image,&image->transparent_color,1,auStack_410c,uVar36)" ( identifier , (pointer_expression "&image->transparent_color" & (field_expression "image->transparent_color" identifier -> field_identifier)) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6438,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6438" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0x24,image->interlace)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x24,image->interlace)" ( number_literal , (field_expression "image->interlace" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x641c,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x641c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0x38,image->intensity)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x38,image->intensity)" ( number_literal , (field_expression "image->intensity" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6408,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6408" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0xd,image->compose)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0xd,image->compose)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0xd,image->compose)" ( number_literal , (field_expression "image->compose" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63f4,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x63f4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "sVar40 = (image->page).width;" (assignment_expression "sVar40 = (image->page).width" identifier = (field_expression "(image->page).width" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar37 = (image->page).height;" (assignment_expression "sVar37 = (image->page).height" identifier = (field_expression "(image->page).height" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar40 == 0) {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }\n      else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }" if (parenthesized_expression "(sVar40 == 0)" ( (binary_expression "sVar40 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar60 = 0.0;\n        if (iVar8 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" { (expression_statement "iVar7 = (image->page).x;" (assignment_expression "iVar7 = (image->page).x" identifier = (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar8 = (image->page).y;" (assignment_expression "iVar8 = (image->page).y" identifier = (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((sVar37 != 0) || (iVar7 != 0)) {\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }" if (parenthesized_expression "((sVar37 != 0) || (iVar7 != 0))" ( (binary_expression "(sVar37 != 0) || (iVar7 != 0)" (parenthesized_expression "(sVar37 != 0)" ( (binary_expression "sVar37 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          dVar60 = 0.0;\n          goto LAB_000f29c0;\n        }" { (expression_statement "dVar60 = 0.0;" (assignment_expression "dVar60 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f29c0;" goto statement_identifier ;) })) (expression_statement "dVar60 = 0.0;" (assignment_expression "dVar60 = 0.0" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) goto LAB_000f29c0;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f29c0;" goto statement_identifier ;)) (labeled_statement "LAB_000f1db8:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);" statement_identifier : (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b924c);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }" else (compound_statement "{\n        iVar7 = (image->page).x;\n        iVar8 = (image->page).y;\n        dVar60 = (double)(int)sVar40;\n        if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar62 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);\n        iVar8 = (image->page).x;\n        iVar7 = (image->page).y;\n        if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }\n      }" { (expression_statement "iVar7 = (image->page).x;" (assignment_expression "iVar7 = (image->page).x" identifier = (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar8 = (image->page).y;" (assignment_expression "iVar8 = (image->page).y" identifier = (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar60 = (double)(int)sVar40;" (assignment_expression "dVar60 = (double)(int)sVar40" identifier = (cast_expression "(double)(int)sVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar40 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar40 < 0)" ( (binary_expression "(int)sVar40 < 0" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (labeled_statement "LAB_000f29c0:\n        dVar62 = (double)(int)sVar37;" statement_identifier : (expression_statement "dVar62 = (double)(int)sVar37;" (assignment_expression "dVar62 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (if_statement "if ((int)sVar37 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62,(double)iVar7,(double)iVar8)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x63e4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "iVar8 = (image->page).x;" (assignment_expression "iVar8 = (image->page).x" identifier = (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar7 = (image->page).y;" (assignment_expression "iVar7 = (image->page).y" identifier = (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)) {\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }" if (parenthesized_expression "((iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0))" ( (binary_expression "(iVar8 != 0) || (pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0)" ( (comma_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c), iVar7 != 0" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          dVar60 = (double)iVar8;\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);\n          goto LAB_000f1db8;\n        }" { (expression_statement "dVar60 = (double)iVar8;" (assignment_expression "dVar60 = (double)iVar8" identifier = (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0),(double)iVar7)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x63b8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (goto_statement "goto LAB_000f1db8;" goto statement_identifier ;) })) }))) (expression_statement "uVar29 = (*pcVar59)(0x15,image->dispose);" (assignment_expression "uVar29 = (*pcVar59)(0x15,image->dispose)" identifier = (call_expression "(*pcVar59)(0x15,image->dispose)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(0x15,image->dispose)" ( number_literal , (field_expression "image->dispose" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6394,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6394" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "sVar37 = image->delay;" (assignment_expression "sVar37 = image->delay" identifier = (field_expression "image->delay" identifier -> field_identifier)) ;) (if_statement "if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }" if (parenthesized_expression "(sVar37 != 0)" ( (binary_expression "sVar37 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);\n      }" { (expression_statement "dVar60 = (double)(int)sVar37;" (assignment_expression "dVar60 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),(double)image->ticks_per_second)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6384" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , (cast_expression "(double)image->ticks_per_second" ( (type_descriptor "double" primitive_type) ) (field_expression "image->ticks_per_second" identifier -> field_identifier)) ))) ;) })) (expression_statement "sVar37 = image->iterations;" (assignment_expression "sVar37 = image->iterations" identifier = (field_expression "image->iterations" identifier -> field_identifier)) ;) (if_statement "if (sVar37 != 1) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }" if (parenthesized_expression "(sVar37 != 1)" ( (binary_expression "sVar37 != 1" identifier != number_literal) )) (compound_statement "{\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }" { (expression_statement "dVar60 = (double)(int)sVar37;" (assignment_expression "dVar60 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x636c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "sVar37 = image->duration;" (assignment_expression "sVar37 = image->duration" identifier = (field_expression "image->duration" identifier -> field_identifier)) ;) (if_statement "if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }" if (parenthesized_expression "(sVar37 != 0)" ( (binary_expression "sVar37 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }" { (expression_statement "dVar60 = (double)(int)sVar37;" (assignment_expression "dVar60 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6354" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "sVar37 = image->scene;" (assignment_expression "sVar37 = image->scene" identifier = (field_expression "image->scene" identifier -> field_identifier)) ;) (if_statement "if (image->next == (_Image *)0x0) {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" if (parenthesized_expression "(image->next == (_Image *)0x0)" ( (binary_expression "image->next == (_Image *)0x0" (field_expression "image->next" identifier -> field_identifier) == (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\n        if (image->previous != (_Image *)0x0) goto LAB_000f1e64;\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n        if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }\n      }" { (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9764);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9764)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9764)" * (cast_expression "(code **)(puVar56 + 0x2b9764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9764)" ( (binary_expression "puVar56 + 0x2b9764" identifier + number_literal) ))))) ;) (if_statement "if (image->previous != (_Image *)0x0) goto LAB_000f1e64;" if (parenthesized_expression "(image->previous != (_Image *)0x0)" ( (binary_expression "image->previous != (_Image *)0x0" (field_expression "image->previous" identifier -> field_identifier) != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f1e64;" goto statement_identifier ;)) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b924c);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if (sVar37 != 0) {\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }" if (parenthesized_expression "(sVar37 != 0)" ( (binary_expression "sVar37 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar60 = (double)(int)sVar37;\n          if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));\n          goto LAB_000f1ed4;\n        }" { (expression_statement "dVar60 = (double)(int)sVar37;" (assignment_expression "dVar60 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                    (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar60 >> 0x20)\n                     ,SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6324" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) (goto_statement "goto LAB_000f1ed4;" goto statement_identifier ;) })) }) (else_clause "else {\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" else (compound_statement "{\n        pcVar59 = *(code **)(puVar56 + 0x2b9764);\nLAB_000f1e64:\n        iVar7 = (*pcVar59)(image);\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);\nLAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);\n      }" { (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9764);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9764)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9764)" * (cast_expression "(code **)(puVar56 + 0x2b9764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9764)" ( (binary_expression "puVar56 + 0x2b9764" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000f1e64:\n        iVar7 = (*pcVar59)(image);" statement_identifier : (expression_statement "iVar7 = (*pcVar59)(image);" (assignment_expression "iVar7 = (*pcVar59)(image)" identifier = (call_expression "(*pcVar59)(image)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(image)" ( identifier )))) ;)) (expression_statement "dVar60 = (double)(int)sVar37;" (assignment_expression "dVar60 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar62 = (double)iVar7;" (assignment_expression "dVar62 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0),dVar62)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6340" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) , identifier ))) ;) (labeled_statement "LAB_000f1ed4:\n        pcVar59 = *(code **)(puVar56 + 0x2b924c);" statement_identifier : (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b924c);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar29 = (*pcVar59)(0xe,image->compression);" (assignment_expression "uVar29 = (*pcVar59)(0xe,image->compression)" identifier = (call_expression "(*pcVar59)(0xe,image->compression)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(0xe,image->compression)" ( number_literal , (field_expression "image->compression" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6314,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6314" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "sVar37 = image->quality;" (assignment_expression "sVar37 = image->quality" identifier = (field_expression "image->quality" identifier -> field_identifier)) ;) (if_statement "if (sVar37 != 0) {\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }" if (parenthesized_expression "(sVar37 != 0)" ( (binary_expression "sVar37 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar60 = (double)(int)sVar37;\n        if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));\n      }" { (expression_statement "dVar60 = (double)(int)sVar37;" (assignment_expression "dVar60 = (double)(int)sVar37" identifier = (cast_expression "(double)(int)sVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar37 < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)sVar37 < 0)" ( (binary_expression "(int)sVar37 < 0" (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0));" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar60 >> 0x20),\n                   SUB84(dVar60,0))" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6300" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar60 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar60 >> 0x20)" ( (binary_expression "(ulonglong)dVar60 >> 0x20" (cast_expression "(ulonglong)dVar60" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar60,0)" identifier (argument_list "(dVar60,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(0x36,image->orientation)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x36,image->orientation)" ( number_literal , (field_expression "image->orientation" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62ec,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x62ec" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (image->montage != (char *)0x0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }" if (parenthesized_expression "(image->montage != (char *)0x0)" ( (binary_expression "image->montage != (char *)0x0" (field_expression "image->montage" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62d8)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x62d8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if (image->directory != (char *)0x0) {\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }" if (parenthesized_expression "(image->directory != (char *)0x0)" ( (binary_expression "image->directory != (char *)0x0" (field_expression "image->directory" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = (**(code **)(puVar56 + 0x2b96bc))();\n        (**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);\n        pcVar33 = image->directory;\n        iVar8 = (int)*pcVar33;\n        if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }\n        (**(code **)(puVar56 + 0x2b9ad4))(iVar7);\n      }" { (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b96bc))();" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b96bc))()" identifier = (call_expression "(**(code **)(puVar56 + 0x2b96bc))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b96bc))" ( (pointer_expression "**(code **)(puVar56 + 0x2b96bc)" * (pointer_expression "*(code **)(puVar56 + 0x2b96bc)" * (cast_expression "(code **)(puVar56 + 0x2b96bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b96bc)" ( (binary_expression "puVar56 + 0x2b96bc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8);" (call_expression "(**(code **)(puVar56 + 0x2b9974))(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9974))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9974)" * (pointer_expression "*(code **)(puVar56 + 0x2b9974)" * (cast_expression "(code **)(puVar56 + 0x2b9974)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9974)" ( (binary_expression "puVar56 + 0x2b9974" identifier + number_literal) ))))) )) (argument_list "(iVar7 + 0x18,*(int *)(puVar56 + 0x2b8dd0) + -0x62c8)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x62c8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x62c0)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x62c0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar33 = image->directory;" (assignment_expression "pcVar33 = image->directory" identifier = (field_expression "image->directory" identifier -> field_identifier)) ;) (expression_statement "iVar8 = (int)*pcVar33;" (assignment_expression "iVar8 = (int)*pcVar33" identifier = (cast_expression "(int)*pcVar33" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar33" * identifier))) ;) (if_statement "if (iVar8 != 0) {\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar12 = *(int *)(puVar56 + 0x2b8e38);\n          dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n          iVar9 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar10 = *(int *)(puVar56 + 0x2b8dd0);\n          dVar62 = dVar60;\n          do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);\n        }" { (expression_statement "iVar11 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar11 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar56 + 0x2b8e38);" (assignment_expression "iVar12 = *(int *)(puVar56 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar62 = dVar60;" (assignment_expression "dVar62 = dVar60" identifier = identifier) ;) (do_statement "do {\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          } while (iVar8 != 0);" do (compound_statement "{\n            iVar22 = 1;\n            pcVar54 = pcVar33;\n            if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }\n            (**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);\n            uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);\n            iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);\n            (**(code **)(puVar56 + 0x2b9a90))(uVar29);\n            if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }\n            iVar8 = (int)pcVar54[1];\n            pcVar33 = pcVar54 + 1;\n          }" { (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) (expression_statement "pcVar54 = pcVar33;" (assignment_expression "pcVar54 = pcVar33" identifier = identifier) ;) (if_statement "if (1 < (iVar8 + 1U & 0xff)) {\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }" if (parenthesized_expression "(1 < (iVar8 + 1U & 0xff))" ( (binary_expression "1 < (iVar8 + 1U & 0xff)" number_literal < (parenthesized_expression "(iVar8 + 1U & 0xff)" ( (binary_expression "iVar8 + 1U & 0xff" (binary_expression "iVar8 + 1U" identifier + number_literal) & number_literal) ))) )) (compound_statement "{\n              do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);\n              iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;\n            }" { (do_statement "do {\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              } while ((uint)((int)pcVar54 - (int)pcVar33) < 0x1000);" do (compound_statement "{\n                pcVar54 = pcVar54 + 1;\n                if ((byte)(*pcVar54 + 1U) < 2) break;\n              }" { (expression_statement "pcVar54 = pcVar54 + 1;" (assignment_expression "pcVar54 = pcVar54 + 1" identifier = (binary_expression "pcVar54 + 1" identifier + number_literal)) ;) (if_statement "if ((byte)(*pcVar54 + 1U) < 2) break;" if (parenthesized_expression "((byte)(*pcVar54 + 1U) < 2)" ( (binary_expression "(byte)(*pcVar54 + 1U) < 2" (call_expression "(byte)(*pcVar54 + 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar54 + 1U)" ( (binary_expression "*pcVar54 + 1U" (pointer_expression "*pcVar54" * identifier) + number_literal) ))) < number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((uint)((int)pcVar54 - (int)pcVar33) < 0x1000)" ( (binary_expression "(uint)((int)pcVar54 - (int)pcVar33) < 0x1000" (call_expression "(uint)((int)pcVar54 - (int)pcVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar54 - (int)pcVar33)" ( (binary_expression "(int)pcVar54 - (int)pcVar33" (cast_expression "(int)pcVar54" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar33" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) ;) (expression_statement "iVar22 = ((int)pcVar54 - (int)pcVar33) + 1;" (assignment_expression "iVar22 = ((int)pcVar54 - (int)pcVar33) + 1" identifier = (binary_expression "((int)pcVar54 - (int)pcVar33) + 1" (parenthesized_expression "((int)pcVar54 - (int)pcVar33)" ( (binary_expression "(int)pcVar54 - (int)pcVar33" (cast_expression "(int)pcVar54" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar33" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22);" (call_expression "(**(code **)(puVar56 + 0x2b9d28))(iVar7 + 0x2210,pcVar33,iVar22)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d28))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d28)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d28)" * (cast_expression "(code **)(puVar56 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d28)" ( (binary_expression "puVar56 + 0x2b9d28" identifier + number_literal) ))))) )) (argument_list "(iVar7 + 0x2210,pcVar33,iVar22)" ( (binary_expression "iVar7 + 0x2210" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x62b0,iVar7 + 0x2210)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar9 + -0x62b0,iVar7 + 0x2210)" ( identifier , (binary_expression "iVar9 + -0x62b0" identifier + number_literal) , (binary_expression "iVar7 + 0x2210" identifier + number_literal) ))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b9a90))(0)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9a90))(0)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a90))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a90)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a90)" * (cast_expression "(code **)(puVar56 + 0x2b9a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a90)" ( (binary_expression "puVar56 + 0x2b9a90" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36);" (assignment_expression "iVar8 = (**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9400))(iVar7,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9400))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9400)" * (pointer_expression "*(code **)(puVar56 + 0x2b9400)" * (cast_expression "(code **)(puVar56 + 0x2b9400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9400)" ( (binary_expression "puVar56 + 0x2b9400" identifier + number_literal) ))))) )) (argument_list "(iVar7,uVar36)" ( identifier , identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a90))(uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a90))(uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a90))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a90)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a90)" * (cast_expression "(code **)(puVar56 + 0x2b9a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a90)" ( (binary_expression "puVar56 + 0x2b9a90" identifier + number_literal) ))))) )) (argument_list "(uVar29)" ( identifier ))) ;) (if_statement "if (iVar8 == 0) {\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);\n            }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd8)" * (cast_expression "(int *)(puVar56 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd8)" ( (binary_expression "puVar56 + 0x2b8dd8" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }" else (compound_statement "{\n              dVar66 = (double)*(int *)(iVar8 + 0x3340);\n              if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }\n              dVar64 = (double)*(int *)(iVar8 + 0x3344);\n              if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }\n              (**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);\n              (**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);\n              (**(code **)(puVar56 + 0x2b9180))(iVar8);\n              iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }\n              (**(code **)(puVar56 + 0x2b9438))(iVar8);\n            }" { (expression_statement "dVar66 = (double)*(int *)(iVar8 + 0x3340);" (assignment_expression "dVar66 = (double)*(int *)(iVar8 + 0x3340)" identifier = (cast_expression "(double)*(int *)(iVar8 + 0x3340)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar8 + 0x3340)" * (cast_expression "(int *)(iVar8 + 0x3340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3340)" ( (binary_expression "iVar8 + 0x3340" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar8 + 0x3340) < 0) {\n                dVar66 = dVar66 + dVar62;\n              }" if (parenthesized_expression "(*(int *)(iVar8 + 0x3340) < 0)" ( (binary_expression "*(int *)(iVar8 + 0x3340) < 0" (pointer_expression "*(int *)(iVar8 + 0x3340)" * (cast_expression "(int *)(iVar8 + 0x3340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3340)" ( (binary_expression "iVar8 + 0x3340" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                dVar66 = dVar66 + dVar62;\n              }" { (expression_statement "dVar66 = dVar66 + dVar62;" (assignment_expression "dVar66 = dVar66 + dVar62" identifier = (binary_expression "dVar66 + dVar62" identifier + identifier)) ;) })) (expression_statement "dVar64 = (double)*(int *)(iVar8 + 0x3344);" (assignment_expression "dVar64 = (double)*(int *)(iVar8 + 0x3344)" identifier = (cast_expression "(double)*(int *)(iVar8 + 0x3344)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar8 + 0x3344)" * (cast_expression "(int *)(iVar8 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3344)" ( (binary_expression "iVar8 + 0x3344" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar8 + 0x3344) < 0) {\n                dVar64 = dVar64 + dVar60;\n              }" if (parenthesized_expression "(*(int *)(iVar8 + 0x3344) < 0)" ( (binary_expression "*(int *)(iVar8 + 0x3344) < 0" (pointer_expression "*(int *)(iVar8 + 0x3344)" * (cast_expression "(int *)(iVar8 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3344)" ( (binary_expression "iVar8 + 0x3344" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                dVar64 = dVar64 + dVar60;\n              }" { (expression_statement "dVar64 = dVar64 + dVar60;" (assignment_expression "dVar64 = dVar64 + dVar60" identifier = (binary_expression "dVar64 + dVar60" identifier + identifier)) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                        (file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar10 + -0x62a8,(int)((ulonglong)dVar66 >> 0x20),SUB84(dVar66,0),\n                         dVar64,iVar8 + 0x2340)" ( identifier , (binary_expression "iVar10 + -0x62a8" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar66 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar66 >> 0x20)" ( (binary_expression "(ulonglong)dVar66 >> 0x20" (cast_expression "(ulonglong)dVar66" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar66,0)" identifier (argument_list "(dVar66,0)" ( identifier , number_literal ))) , identifier , (binary_expression "iVar8 + 0x2340" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b9500))(iVar8,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9500))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9500)" * (pointer_expression "*(code **)(puVar56 + 0x2b9500)" * (cast_expression "(code **)(puVar56 + 0x2b9500)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9500)" ( (binary_expression "puVar56 + 0x2b9500" identifier + number_literal) ))))) )) (argument_list "(iVar8,uVar36)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9180))(iVar8);" (call_expression "(**(code **)(puVar56 + 0x2b9180))(iVar8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9180))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9180)" * (pointer_expression "*(code **)(puVar56 + 0x2b9180)" * (cast_expression "(code **)(puVar56 + 0x2b9180)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9180)" ( (binary_expression "puVar56 + 0x2b9180" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);" (assignment_expression "iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9dac))(iVar8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar56 + 0x2b9dac)" * (cast_expression "(code **)(puVar56 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9dac)" ( (binary_expression "puVar56 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (while_statement "while (iVar22 != 0) {\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }" while (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);\n                iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);\n                if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }\n                iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);\n              }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar11 + -0x6294,iVar22)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar11 + -0x6294,iVar22)" ( identifier , (binary_expression "iVar11 + -0x6294" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36);" (assignment_expression "iVar22 = (**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b98e8))(iVar8,iVar22,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar56 + 0x2b98e8)" * (cast_expression "(code **)(puVar56 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b98e8)" ( (binary_expression "puVar56 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(iVar8,iVar22,uVar36)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar22 != 0) {\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);\n                }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar12 + -0x18b8,iVar22)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar12 + -0x18b8,iVar22)" ( identifier , (binary_expression "iVar12 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8);" (assignment_expression "iVar22 = (**(code **)(puVar56 + 0x2b9dac))(iVar8)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9dac))(iVar8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar56 + 0x2b9dac)" * (cast_expression "(code **)(puVar56 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9dac)" ( (binary_expression "puVar56 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9438))(iVar8);" (call_expression "(**(code **)(puVar56 + 0x2b9438))(iVar8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9438))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9438)" * (pointer_expression "*(code **)(puVar56 + 0x2b9438)" * (cast_expression "(code **)(puVar56 + 0x2b9438)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9438)" ( (binary_expression "puVar56 + 0x2b9438" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier ))) ;) }))) (expression_statement "iVar8 = (int)pcVar54[1];" (assignment_expression "iVar8 = (int)pcVar54[1]" identifier = (cast_expression "(int)pcVar54[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar54[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar33 = pcVar54 + 1;" (assignment_expression "pcVar33 = pcVar54 + 1" identifier = (binary_expression "pcVar54 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9ad4))(iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9ad4))(iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ad4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ad4)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ad4)" * (cast_expression "(code **)(puVar56 + 0x2b9ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ad4)" ( (binary_expression "puVar56 + 0x2b9ad4" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c);" (call_expression "(**(code **)(puVar56 + 0x2b9268))(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9268)" * (pointer_expression "*(code **)(puVar56 + 0x2b9268)" * (cast_expression "(code **)(puVar56 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9268)" ( (binary_expression "puVar56 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(puStack_4198,0x1000,*(int *)(puVar56 + 0x2b8dd0) + -0x628c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x628c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b98e8))(image,puStack_4198,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar56 + 0x2b98e8)" * (cast_expression "(code **)(puVar56 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b98e8)" ( (binary_expression "puVar56 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(image,puStack_4198,uVar36)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);\n        uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);\n        if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6278)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6278" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7);" (assignment_expression "uVar32 = (**(code **)(puVar56 + 0x2b9824))(iVar7)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9824))(iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9824))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9824)" * (pointer_expression "*(code **)(puVar56 + 0x2b9824)" * (cast_expression "(code **)(puVar56 + 0x2b9824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9824)" ( (binary_expression "puVar56 + 0x2b9824" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (0x50 < uVar32) {\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }" if (parenthesized_expression "(0x50 < uVar32)" ( (binary_expression "0x50 < uVar32" number_literal < identifier) )) (compound_statement "{\n          (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b94e8))(10,file_00);" (call_expression "(**(code **)(puVar56 + 0x2b94e8))(10,file_00)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94e8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94e8)" * (pointer_expression "*(code **)(puVar56 + 0x2b94e8)" * (cast_expression "(code **)(puVar56 + 0x2b94e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94e8)" ( (binary_expression "puVar56 + 0x2b94e8" identifier + number_literal) ))))) )) (argument_list "(10,file_00)" ( number_literal , identifier ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,iVar7)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36);" (assignment_expression "puVar21 = (undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36)" identifier = (cast_expression "(undefined8 *)(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x2b9da0))(image,aCStack_4168,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9da0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9da0)" * (pointer_expression "*(code **)(puVar56 + 0x2b9da0)" * (cast_expression "(code **)(puVar56 + 0x2b9da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9da0)" ( (binary_expression "puVar56 + 0x2b9da0" identifier + number_literal) ))))) )) (argument_list "(image,aCStack_4168,uVar36)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (puVar21 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }" if (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(puVar21);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }" { (expression_statement "uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d00))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d00)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d00)" * (cast_expression "(code **)(puVar56 + 0x2b9d00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d00)" ( (binary_expression "puVar56 + 0x2b9d00" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar56 + 0x2b8dd0) + -0x3688)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }" if (parenthesized_expression "(0 < (int)aCStack_4168[0])" ( (binary_expression "0 < (int)aCStack_4168[0]" number_literal < (cast_expression "(int)aCStack_4168[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "aCStack_4168[0]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar7 = 0;\n          puVar57 = puVar21;\n          do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);\n        }" { (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "puVar57 = puVar21;" (assignment_expression "puVar57 = puVar21" identifier = identifier) ;) (do_statement "do {\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          } while (iVar7 < (int)aCStack_4168[0]);" do (compound_statement "{\n            iVar7 = iVar7 + 1;\n            (**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n            puVar57 = puVar57 + 2;\n          }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1]);" (call_expression "(**(code **)(puVar56 + 0x2b9268))\n                      (acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1])" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9268)" * (pointer_expression "*(code **)(puVar56 + 0x2b9268)" * (cast_expression "(code **)(puVar56 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9268)" ( (binary_expression "puVar56 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,0x1000,iVar8 + -0x6264,iVar7,*puVar57,puVar57[1])" ( identifier , number_literal , (binary_expression "iVar8 + -0x6264" identifier + number_literal) , identifier , (pointer_expression "*puVar57" * identifier) , (subscript_expression "puVar57[1]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9894))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9894)" * (pointer_expression "*(code **)(puVar56 + 0x2b9894)" * (cast_expression "(code **)(puVar56 + 0x2b9894)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9894)" ( (binary_expression "puVar56 + 0x2b9894" identifier + number_literal) ))))) )) (argument_list "(&uStack_416c,acStack_110c)" ( (pointer_expression "&uStack_416c" & identifier) , identifier ))) ;) (expression_statement "puVar57 = puVar57 + 2;" (assignment_expression "puVar57 = puVar57 + 2" identifier = (binary_expression "puVar57 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 < (int)aCStack_4168[0])" ( (binary_expression "iVar7 < (int)aCStack_4168[0]" identifier < (cast_expression "(int)aCStack_4168[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "aCStack_4168[0]" identifier [ number_literal ]))) )) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b94ac))(puVar21);" (call_expression "(**(code **)(puVar56 + 0x2b94ac))(puVar21)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(puVar21)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x625c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x625c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c);" (assignment_expression "uStack_416c = (**(code **)(puVar56 + 0x2b9560))(uStack_416c)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9560)" * (pointer_expression "*(code **)(puVar56 + 0x2b9560)" * (cast_expression "(code **)(puVar56 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9560)" ( (binary_expression "puVar56 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uStack_416c)" ( identifier )))) ;) })) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b91ec))(image,aCStack_4168,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b91ec))" ( (pointer_expression "**(code **)(puVar56 + 0x2b91ec)" * (pointer_expression "*(code **)(puVar56 + 0x2b91ec)" * (cast_expression "(code **)(puVar56 + 0x2b91ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b91ec)" ( (binary_expression "puVar56 + 0x2b91ec" identifier + number_literal) ))))) )) (argument_list "(image,aCStack_4168,uVar36)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);\n        if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }\n        (**(code **)(puVar56 + 0x2b94ac))(iVar7);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar56 + 0x2b9560))(uStack_416c);\n      }" { (expression_statement "uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9d00))(*(int *)(puVar56 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d00))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d00)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d00)" * (cast_expression "(code **)(puVar56 + 0x2b9d00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d00)" ( (binary_expression "puVar56 + 0x2b9d00" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar56 + 0x2b8dd0) + -0x3688)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (0 < (int)aCStack_4168[0]) {\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }" if (parenthesized_expression "(0 < (int)aCStack_4168[0])" ( (binary_expression "0 < (int)aCStack_4168[0]" number_literal < (cast_expression "(int)aCStack_4168[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "aCStack_4168[0]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n          iVar9 = 0;\n          do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);\n        }" { (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          } while (iVar9 < (int)aCStack_4168[0]);" do (compound_statement "{\n            iVar9 = iVar9 + 1;\n            (**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);\n            (**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);\n          }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264);" (call_expression "(**(code **)(puVar56 + 0x2b9268))(acStack_110c,0x1000,iVar8 + -0x6264)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9268)" * (pointer_expression "*(code **)(puVar56 + 0x2b9268)" * (cast_expression "(code **)(puVar56 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9268)" ( (binary_expression "puVar56 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(acStack_110c,0x1000,iVar8 + -0x6264)" ( identifier , number_literal , (binary_expression "iVar8 + -0x6264" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c);" (call_expression "(**(code **)(puVar56 + 0x2b9894))(&uStack_416c,acStack_110c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9894))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9894)" * (pointer_expression "*(code **)(puVar56 + 0x2b9894)" * (cast_expression "(code **)(puVar56 + 0x2b9894)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9894)" ( (binary_expression "puVar56 + 0x2b9894" identifier + number_literal) ))))) )) (argument_list "(&uStack_416c,acStack_110c)" ( (pointer_expression "&uStack_416c" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(iVar9 < (int)aCStack_4168[0])" ( (binary_expression "iVar9 < (int)aCStack_4168[0]" identifier < (cast_expression "(int)aCStack_4168[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "aCStack_4168[0]" identifier [ number_literal ]))) )) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b94ac))(iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b94ac))(iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x624c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x624c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                  (file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8e38) + -0x18b8,uStack_416c)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9560))(uStack_416c);" (call_expression "(**(code **)(puVar56 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9560)" * (pointer_expression "*(code **)(puVar56 + 0x2b9560)" * (cast_expression "(code **)(puVar56 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9560)" ( (binary_expression "puVar56 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uStack_416c)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9378))(image);" (call_expression "(**(code **)(puVar56 + 0x2b9378))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9378))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9378)" * (pointer_expression "*(code **)(puVar56 + 0x2b9378)" * (cast_expression "(code **)(puVar56 + 0x2b9378)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9378)" ( (binary_expression "puVar56 + 0x2b9378" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b93f8))(image)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b93f8))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b93f8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b93f8)" * (pointer_expression "*(code **)(puVar56 + 0x2b93f8)" * (cast_expression "(code **)(puVar56 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93f8)" ( (binary_expression "puVar56 + 0x2b93f8" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8dd4);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);\n        iVar10 = *(int *)(puVar56 + 0x2b8dd4);\n        iVar11 = *(int *)(puVar56 + 0x2b8dd0);\n        do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);\n      }" { (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6230)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6230" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar10 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar10 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar11 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (do_statement "do {\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        } while (iVar7 != 0);" do (compound_statement "{\n          do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);\n          (**(code **)(puVar56 + 0x2b9234))(iVar12);\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);\n          iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);\n          if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }\n          pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }\n          iVar7 = (*pcVar59)(image);\n        }" { (do_statement "do {\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          } while (iVar12 == 0);" do (compound_statement "{\n            iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);\n          }" { (expression_statement "iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7);" (assignment_expression "iVar12 = (**(code **)(puVar56 + 0x2b98c4))(image,iVar7)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b98c4))(image,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b98c4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b98c4)" * (pointer_expression "*(code **)(puVar56 + 0x2b98c4)" * (cast_expression "(code **)(puVar56 + 0x2b98c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b98c4)" ( (binary_expression "puVar56 + 0x2b98c4" identifier + number_literal) ))))) )) (argument_list "(image,iVar7)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9234))(iVar12);" (call_expression "(**(code **)(puVar56 + 0x2b9234))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9234))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9234)" * (pointer_expression "*(code **)(puVar56 + 0x2b9234)" * (cast_expression "(code **)(puVar56 + 0x2b9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9234)" ( (binary_expression "puVar56 + 0x2b9234" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x6220,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar8 + -0x6220,iVar7)" ( identifier , (binary_expression "iVar8 + -0x6220" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918);" (assignment_expression "iVar22 = (**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b95fc))(iVar7,iVar9 + -0x1918)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar56 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar56 + 0x2b95fc)" * (cast_expression "(code **)(puVar56 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b95fc)" ( (binary_expression "puVar56 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(iVar7,iVar9 + -0x1918)" ( identifier , (binary_expression "iVar9 + -0x1918" identifier + number_literal) )))) ;) (if_statement "if (iVar22 == 0) {\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);\n            if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }\n          }" { (expression_statement "iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12);" (assignment_expression "iVar22 = (**(code **)(puVar56 + 0x2b9234))(iVar12)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9234))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9234))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9234)" * (pointer_expression "*(code **)(puVar56 + 0x2b9234)" * (cast_expression "(code **)(puVar56 + 0x2b9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9234)" ( (binary_expression "puVar56 + 0x2b9234" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (0 < iVar22 + -5) {\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }" if (parenthesized_expression "(0 < iVar22 + -5)" ( (binary_expression "0 < iVar22 + -5" number_literal < (binary_expression "iVar22 + -5" identifier + number_literal)) )) (compound_statement "{\n              iVar55 = *(int *)(puVar56 + 0x2b8dd0);\n              iVar58 = 0;\n              do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);\n            }" { (expression_statement "iVar55 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar55 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar58 = 0;" (assignment_expression "iVar58 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              } while (iVar58 < iVar22 + -5);" do (compound_statement "{\n                iVar52 = iVar58 + 1;\n                iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }\n                iVar58 = iVar52 + uVar32;\n              }" { (expression_statement "iVar52 = iVar58 + 1;" (assignment_expression "iVar52 = iVar58 + 1" identifier = (binary_expression "iVar58 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);" (assignment_expression "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9354))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9354)" * (pointer_expression "*(code **)(puVar56 + 0x2b9354)" * (cast_expression "(code **)(puVar56 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9354)" ( (binary_expression "puVar56 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (*(char *)(iVar23 + iVar58) == '\x1c') {\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }\n                else {\n                  uVar32 = 1;\n                }" if (parenthesized_expression "(*(char *)(iVar23 + iVar58) == '\x1c')" ( (binary_expression "*(char *)(iVar23 + iVar58) == '\x1c'" (pointer_expression "*(char *)(iVar23 + iVar58)" * (cast_expression "(char *)(iVar23 + iVar58)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + iVar58)" ( (binary_expression "iVar23 + iVar58" identifier + identifier) )))) == (char_literal "'\x1c'" ' escape_sequence ')) )) (compound_statement "{\n                  (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);\n                  if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }\n                  iVar52 = iVar58 + 5;\n                  (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);\n                  iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                  uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));\n                  if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }\n                  iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);\n                  if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }\n                }" { (expression_statement "(**(code **)(puVar56 + 0x2b9354))(iVar12);" (call_expression "(**(code **)(puVar56 + 0x2b9354))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9354)" * (pointer_expression "*(code **)(puVar56 + 0x2b9354)" * (cast_expression "(code **)(puVar56 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9354)" ( (binary_expression "puVar56 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier ))) ;) (expression_statement "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);" (assignment_expression "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9354))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9354)" * (pointer_expression "*(code **)(puVar56 + 0x2b9354)" * (cast_expression "(code **)(puVar56 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9354)" ( (binary_expression "puVar56 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (expression_statement "uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5);" (assignment_expression "uVar32 = (uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5)" identifier = (call_expression "(uint)(byte)(*(char *)(iVar23 + iVar58 + 2) - 5)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(*(char *)(iVar23 + iVar58 + 2) - 5)" ( (binary_expression "*(char *)(iVar23 + iVar58 + 2) - 5" (pointer_expression "*(char *)(iVar23 + iVar58 + 2)" * (cast_expression "(char *)(iVar23 + iVar58 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + iVar58 + 2)" ( (binary_expression "iVar23 + iVar58 + 2" (binary_expression "iVar23 + iVar58" identifier + identifier) + number_literal) )))) - number_literal) )))) ;) (if_statement "if (uVar32 < 0xd7) {\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }" if (parenthesized_expression "(uVar32 < 0xd7)" ( (binary_expression "uVar32 < 0xd7" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();\n                    return sVar16;\n                  }" { comment comment (expression_statement "sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))();" (assignment_expression "sVar16 = (*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))()" identifier = (call_expression "(*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))()" (parenthesized_expression "(*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       ))" ( (pointer_expression "*(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       )" * (cast_expression "(code *)(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       )" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c\n                                       )" ( (binary_expression "puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4) + 0x2c0d9c" (binary_expression "puVar56 + *(int *)(iVar11 + -0x5f18 + uVar32 * 4)" identifier + (pointer_expression "*(int *)(iVar11 + -0x5f18 + uVar32 * 4)" * (cast_expression "(int *)(iVar11 + -0x5f18 + uVar32 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x5f18 + uVar32 * 4)" ( (binary_expression "iVar11 + -0x5f18 + uVar32 * 4" (binary_expression "iVar11 + -0x5f18" identifier + number_literal) + (binary_expression "uVar32 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar16;" return identifier ;) })) (expression_statement "iVar52 = iVar58 + 5;" (assignment_expression "iVar52 = iVar58 + 5" identifier = (binary_expression "iVar58 + 5" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar55 + -0x6200,iVar10 + -0x1c68)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar55 + -0x6200,iVar10 + -0x1c68)" ( identifier , (binary_expression "iVar55 + -0x6200" identifier + number_literal) , (binary_expression "iVar10 + -0x1c68" identifier + number_literal) ))) ;) (expression_statement "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);" (assignment_expression "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9354))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9354)" * (pointer_expression "*(code **)(puVar56 + 0x2b9354)" * (cast_expression "(code **)(puVar56 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9354)" ( (binary_expression "puVar56 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (expression_statement "uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3);" (assignment_expression "uVar1 = *(undefined1 *)(iVar23 + iVar58 + 3)" identifier = (pointer_expression "*(undefined1 *)(iVar23 + iVar58 + 3)" * (cast_expression "(undefined1 *)(iVar23 + iVar58 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + iVar58 + 3)" ( (binary_expression "iVar23 + iVar58 + 3" (binary_expression "iVar23 + iVar58" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);" (assignment_expression "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9354))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9354)" * (pointer_expression "*(code **)(puVar56 + 0x2b9354)" * (cast_expression "(code **)(puVar56 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9354)" ( (binary_expression "puVar56 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (expression_statement "uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4));" (assignment_expression "uVar32 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4))" identifier = (cast_expression "(uint)CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4))" identifier (argument_list "(uVar1,*(undefined1 *)(iVar23 + iVar58 + 4))" ( identifier , (pointer_expression "*(undefined1 *)(iVar23 + iVar58 + 4)" * (cast_expression "(undefined1 *)(iVar23 + iVar58 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + iVar58 + 4)" ( (binary_expression "iVar23 + iVar58 + 4" (binary_expression "iVar23 + iVar58" identifier + identifier) + number_literal) )))) ))))) ;) (if_statement "if ((uint)(iVar22 - iVar52) <= uVar32) {\n                    uVar32 = iVar22 - iVar52;\n                  }" if (parenthesized_expression "((uint)(iVar22 - iVar52) <= uVar32)" ( (binary_expression "(uint)(iVar22 - iVar52) <= uVar32" (call_expression "(uint)(iVar22 - iVar52)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar22 - iVar52)" ( (binary_expression "iVar22 - iVar52" identifier - identifier) ))) <= identifier) )) (compound_statement "{\n                    uVar32 = iVar22 - iVar52;\n                  }" { (expression_statement "uVar32 = iVar22 - iVar52;" (assignment_expression "uVar32 = iVar22 - iVar52" identifier = (binary_expression "iVar22 - iVar52" identifier - identifier)) ;) })) (expression_statement "iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1);" (assignment_expression "iVar58 = (**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b99f8))(uVar32 + 0x1000,1)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99f8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99f8)" * (pointer_expression "*(code **)(puVar56 + 0x2b99f8)" * (cast_expression "(code **)(puVar56 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99f8)" ( (binary_expression "puVar56 + 0x2b99f8" identifier + number_literal) ))))) )) (argument_list "(uVar32 + 0x1000,1)" ( (binary_expression "uVar32 + 0x1000" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar58 != 0) {\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }" if (parenthesized_expression "(iVar58 != 0)" ( (binary_expression "iVar58 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);\n                    (**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);\n                    piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);\n                    if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }\n                    (**(code **)(puVar56 + 0x2b9560))(iVar58);\n                  }" { (expression_statement "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12);" (assignment_expression "iVar23 = (**(code **)(puVar56 + 0x2b9354))(iVar12)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9354))(iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9354)" * (pointer_expression "*(code **)(puVar56 + 0x2b9354)" * (cast_expression "(code **)(puVar56 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9354)" ( (binary_expression "puVar56 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1);" (call_expression "(**(code **)(puVar56 + 0x2b9d28))(iVar58,iVar23 + iVar52,uVar32 + 1)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d28))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d28)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d28)" * (cast_expression "(code **)(puVar56 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d28)" ( (binary_expression "puVar56 + 0x2b9d28" identifier + number_literal) ))))) )) (argument_list "(iVar58,iVar23 + iVar52,uVar32 + 1)" ( identifier , (binary_expression "iVar23 + iVar52" identifier + identifier) , (binary_expression "uVar32 + 1" identifier + number_literal) ))) ;) (expression_statement "piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58);" (assignment_expression "piVar19 = (int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58)" identifier = (cast_expression "(int *)(**(code **)(puVar56 + 0x2b92cc))(iVar58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x2b92cc))(iVar58)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b92cc))" ( (pointer_expression "**(code **)(puVar56 + 0x2b92cc)" * (pointer_expression "*(code **)(puVar56 + 0x2b92cc)" * (cast_expression "(code **)(puVar56 + 0x2b92cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b92cc)" ( (binary_expression "puVar56 + 0x2b92cc" identifier + number_literal) ))))) )) (argument_list "(iVar58)" ( identifier ))))) ;) (if_statement "if (piVar19 != (int *)0x0) {\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }" if (parenthesized_expression "(piVar19 != (int *)0x0)" ( (binary_expression "piVar19 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      iVar23 = *piVar19;\n                      piVar39 = piVar19;\n                      while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }\n                      (**(code **)(puVar56 + 0x2b94ac))(piVar19);\n                    }" { (expression_statement "iVar23 = *piVar19;" (assignment_expression "iVar23 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar39 = piVar19;" (assignment_expression "piVar39 = piVar19" identifier = identifier) ;) (while_statement "while (iVar23 != 0) {\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }" while (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                        (**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);\n                        (**(code **)(puVar56 + 0x2b94e8))(10,file_00);\n                        iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);\n                        iVar23 = piVar39[1];\n                        *piVar39 = iVar26;\n                        piVar39 = piVar39 + 1;\n                      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00);" (call_expression "(**(code **)(puVar56 + 0x2b9eac))(iVar23,file_00)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9eac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9eac)" * (pointer_expression "*(code **)(puVar56 + 0x2b9eac)" * (cast_expression "(code **)(puVar56 + 0x2b9eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9eac)" ( (binary_expression "puVar56 + 0x2b9eac" identifier + number_literal) ))))) )) (argument_list "(iVar23,file_00)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b94e8))(10,file_00);" (call_expression "(**(code **)(puVar56 + 0x2b94e8))(10,file_00)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94e8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94e8)" * (pointer_expression "*(code **)(puVar56 + 0x2b94e8)" * (cast_expression "(code **)(puVar56 + 0x2b94e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94e8)" ( (binary_expression "puVar56 + 0x2b94e8" identifier + number_literal) ))))) )) (argument_list "(10,file_00)" ( number_literal , identifier ))) ;) (expression_statement "iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39);" (assignment_expression "iVar26 = (**(code **)(puVar56 + 0x2b94ac))(*piVar39)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b94ac))(*piVar39)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(*piVar39)" ( (pointer_expression "*piVar39" * identifier) )))) ;) (expression_statement "iVar23 = piVar39[1];" (assignment_expression "iVar23 = piVar39[1]" identifier = (subscript_expression "piVar39[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar39 = iVar26;" (assignment_expression "*piVar39 = iVar26" (pointer_expression "*piVar39" * identifier) = identifier) ;) (expression_statement "piVar39 = piVar39 + 1;" (assignment_expression "piVar39 = piVar39 + 1" identifier = (binary_expression "piVar39 + 1" identifier + number_literal)) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b94ac))(piVar19);" (call_expression "(**(code **)(puVar56 + 0x2b94ac))(piVar19)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(piVar19)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9560))(iVar58);" (call_expression "(**(code **)(puVar56 + 0x2b9560))(iVar58)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9560)" * (pointer_expression "*(code **)(puVar56 + 0x2b9560)" * (cast_expression "(code **)(puVar56 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9560)" ( (binary_expression "puVar56 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(iVar58)" ( identifier ))) ;) })) }) (else_clause "else {\n                  uVar32 = 1;\n                }" else (compound_statement "{\n                  uVar32 = 1;\n                }" { (expression_statement "uVar32 = 1;" (assignment_expression "uVar32 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar58 = iVar52 + uVar32;" (assignment_expression "iVar58 = iVar52 + uVar32" identifier = (binary_expression "iVar52 + uVar32" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar58 < iVar22 + -5)" ( (binary_expression "iVar58 < iVar22 + -5" identifier < (binary_expression "iVar22 + -5" identifier + number_literal)) )) ;) })) })) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b93f8);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b93f8)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b93f8)" * (cast_expression "(code **)(puVar56 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93f8)" ( (binary_expression "puVar56 + 0x2b93f8" identifier + number_literal) ))))) ;) (if_statement "if (image->debug != MagickFalse) {\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n            (**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);\n            pcVar59 = *(code **)(puVar56 + 0x2b93f8);\n          }" { (expression_statement "(**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12);" (call_expression "(**(code **)(puVar56 + 0x2b9244))(file_00,iVar7,iVar12)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9244))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9244)" * (pointer_expression "*(code **)(puVar56 + 0x2b9244)" * (cast_expression "(code **)(puVar56 + 0x2b9244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9244)" ( (binary_expression "puVar56 + 0x2b9244" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar7,iVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b93f8);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b93f8)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b93f8)" * (cast_expression "(code **)(puVar56 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93f8)" ( (binary_expression "puVar56 + 0x2b93f8" identifier + number_literal) ))))) ;) })) (expression_statement "iVar7 = (*pcVar59)(image);" (assignment_expression "iVar7 = (*pcVar59)(image)" identifier = (call_expression "(*pcVar59)(image)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(image)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9180))(image);" (call_expression "(**(code **)(puVar56 + 0x2b9180))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9180))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9180)" * (pointer_expression "*(code **)(puVar56 + 0x2b9180)" * (cast_expression "(code **)(puVar56 + 0x2b9180)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9180)" ( (binary_expression "puVar56 + 0x2b9180" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9dac))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar56 + 0x2b9dac)" * (cast_expression "(code **)(puVar56 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9dac)" ( (binary_expression "puVar56 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61e8)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x61e8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8e38);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        } while (iVar7 != 0);" do (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar8 + -0x61d8,iVar7)" ( identifier , (binary_expression "iVar8 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b98e8))(image,iVar7,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar56 + 0x2b98e8)" * (cast_expression "(code **)(puVar56 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b98e8)" ( (binary_expression "puVar56 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(image,iVar7,uVar36)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar9 + -0x18b8,iVar7)" ( identifier , (binary_expression "iVar9 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b9dac))(image)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9dac))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar56 + 0x2b9dac)" * (cast_expression "(code **)(puVar56 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9dac)" ( (binary_expression "puVar56 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b99e8))(image);" (call_expression "(**(code **)(puVar56 + 0x2b99e8))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99e8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99e8)" * (pointer_expression "*(code **)(puVar56 + 0x2b99e8)" * (cast_expression "(code **)(puVar56 + 0x2b99e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99e8)" ( (binary_expression "puVar56 + 0x2b99e8" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9b20))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b20))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b20)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b20)" * (cast_expression "(code **)(puVar56 + 0x2b9b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b20)" ( (binary_expression "puVar56 + 0x2b9b20" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61cc)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x61cc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8e38);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        } while (iVar7 != 0);" do (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar8 + -0x61d8,iVar7)" ( identifier , (binary_expression "iVar8 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b99ac))(image,iVar7)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b99ac))(image,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b99ac)" * (cast_expression "(code **)(puVar56 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99ac)" ( (binary_expression "puVar56 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(image,iVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar9 + -0x18b8,iVar7)" ( identifier , (binary_expression "iVar9 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b9b20))(image)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9b20))(image)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b20))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b20)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b20)" * (cast_expression "(code **)(puVar56 + 0x2b9b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b20)" ( (binary_expression "puVar56 + 0x2b9b20" identifier + number_literal) ))))) )) (argument_list "(image)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9d50))();" (call_expression "(**(code **)(puVar56 + 0x2b9d50))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9d50))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9d50)" * (pointer_expression "*(code **)(puVar56 + 0x2b9d50)" * (cast_expression "(code **)(puVar56 + 0x2b9d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9d50)" ( (binary_expression "puVar56 + 0x2b9d50" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b970c))();" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b970c))()" identifier = (call_expression "(**(code **)(puVar56 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b970c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b970c)" * (pointer_expression "*(code **)(puVar56 + 0x2b970c)" * (cast_expression "(code **)(puVar56 + 0x2b970c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b970c)" ( (binary_expression "puVar56 + 0x2b970c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != 0) {\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);\n        iVar8 = *(int *)(puVar56 + 0x2b8dd0);\n        iVar9 = *(int *)(puVar56 + 0x2b8e38);\n        do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);\n      }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61bc)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x61bc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar56 + 0x2b8e38);" (assignment_expression "iVar9 = *(int *)(puVar56 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        } while (iVar7 != 0);" do (compound_statement "{\n          (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);\n          iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);\n          if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }\n          iVar7 = (**(code **)(puVar56 + 0x2b970c))();\n        }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar8 + -0x61d8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar8 + -0x61d8,iVar7)" ( identifier , (binary_expression "iVar8 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9ba4))(3,iVar7,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ba4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ba4)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ba4)" * (cast_expression "(code **)(puVar56 + 0x2b9ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ba4)" ( (binary_expression "puVar56 + 0x2b9ba4" identifier + number_literal) ))))) )) (argument_list "(3,iVar7,uVar36)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);\n          }" { (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,iVar9 + -0x18b8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,iVar9 + -0x18b8,iVar7)" ( identifier , (binary_expression "iVar9 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b970c))();" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b970c))()" identifier = (call_expression "(**(code **)(puVar56 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b970c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b970c)" * (pointer_expression "*(code **)(puVar56 + 0x2b970c)" * (cast_expression "(code **)(puVar56 + 0x2b970c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b970c)" ( (binary_expression "puVar56 + 0x2b970c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar48 = auStack_310d + 1;" (assignment_expression "puVar48 = auStack_310d + 1" identifier = (binary_expression "auStack_310d + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8dd8);" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd8)" * (cast_expression "(int *)(puVar56 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd8)" ( (binary_expression "puVar56 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b924c))(2,image->taint)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b924c))(2,image->taint)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b924c)" * (pointer_expression "*(code **)(puVar56 + 0x2b924c)" * (cast_expression "(code **)(puVar56 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b924c)" ( (binary_expression "puVar56 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(2,image->taint)" ( number_literal , (field_expression "image->taint" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x61ac,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x61ac" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48);" (call_expression "(**(code **)(puVar56 + 0x2b9588))\n                (*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9588)" * (pointer_expression "*(code **)(puVar56 + 0x2b9588)" * (cast_expression "(code **)(puVar56 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9588)" ( (binary_expression "puVar56 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)&image->extent,(int)image->extent,1,\n                 *(int *)(puVar56 + 0x2b8e38) + 0x1b28,0x1000,puVar48)" ( (pointer_expression "*(undefined4 *)&image->extent" * (cast_expression "(undefined4 *)&image->extent" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&image->extent" & (field_expression "image->extent" identifier -> field_identifier)))) , (cast_expression "(int)image->extent" ( (type_descriptor "int" primitive_type) ) (field_expression "image->extent" identifier -> field_identifier)) , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar56 + 0x2b8e38)" * (cast_expression "(int *)(puVar56 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8e38)" ( (binary_expression "puVar56 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x619c,puVar48)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x619c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "lVar2 = (ulonglong)image->columns * (ulonglong)image->rows;" (assignment_expression "lVar2 = (ulonglong)image->columns * (ulonglong)image->rows" identifier = (binary_expression "(ulonglong)image->columns * (ulonglong)image->rows" (cast_expression "(ulonglong)image->columns" ( (type_descriptor "ulonglong" type_identifier) ) (field_expression "image->columns" identifier -> field_identifier)) * (cast_expression "(ulonglong)image->rows" ( (type_descriptor "ulonglong" type_identifier) ) (field_expression "image->rows" identifier -> field_identifier)))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48);" (call_expression "(**(code **)(puVar56 + 0x2b9588))\n                ((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9588)" * (pointer_expression "*(code **)(puVar56 + 0x2b9588)" * (cast_expression "(code **)(puVar56 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9588)" ( (binary_expression "puVar56 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)lVar2 >> 0x20),(int)lVar2,0,iVar7 + 0x4ff8,0x1000,puVar48)" ( (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (binary_expression "iVar7 + 0x4ff8" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48);" (assignment_expression "uVar32 = (**(code **)(puVar56 + 0x2b9824))(puVar48)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9824))(puVar48)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9824))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9824)" * (pointer_expression "*(code **)(puVar56 + 0x2b9824)" * (cast_expression "(code **)(puVar56 + 0x2b9824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9824)" ( (binary_expression "puVar56 + 0x2b9824" identifier + number_literal) ))))) )) (argument_list "(puVar48)" ( identifier )))) ;) (if_statement "if (1 < uVar32) {\n        auStack_310d[uVar32] = 0;\n      }" if (parenthesized_expression "(1 < uVar32)" ( (binary_expression "1 < uVar32" number_literal < identifier) )) (compound_statement "{\n        auStack_310d[uVar32] = 0;\n      }" { (expression_statement "auStack_310d[uVar32] = 0;" (assignment_expression "auStack_310d[uVar32] = 0" (subscript_expression "auStack_310d[uVar32]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x618c,puVar48)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x618c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65) {\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }" if (parenthesized_expression "(*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65)" ( (binary_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8) < dVar65" (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x13f8)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x13f8" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar60 = (double)(int)image->columns;\n        if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        dVar62 = (double)(int)image->rows;\n        if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }\n        uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);\n        (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);\n      }" { (expression_statement "dVar60 = (double)(int)image->columns;" (assignment_expression "dVar60 = (double)(int)image->columns" identifier = (cast_expression "(double)(int)image->columns" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->columns < 0) {\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)image->columns < 0)" ( (binary_expression "(int)image->columns < 0" (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar60 = dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar60 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar62 = (double)(int)image->rows;" (assignment_expression "dVar62 = (double)(int)image->rows" identifier = (cast_expression "(double)(int)image->rows" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)))) ;) (if_statement "if ((int)image->rows < 0) {\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)image->rows < 0)" ( (binary_expression "(int)image->rows < 0" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400));" (assignment_expression "uVar63 = (**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400))" identifier = (call_expression "(**(code **)(puVar56 + 0x2b8e40))\n                           ((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b8e40))" ( (pointer_expression "**(code **)(puVar56 + 0x2b8e40)" * (pointer_expression "*(code **)(puVar56 + 0x2b8e40)" * (cast_expression "(code **)(puVar56 + 0x2b8e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b8e40)" ( (binary_expression "puVar56 + 0x2b8e40" identifier + number_literal) ))))) )) (argument_list "((dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400))" ( (binary_expression "(dVar60 * dVar62) / dVar65 +\n                            *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" (binary_expression "(dVar60 * dVar62) / dVar65" (parenthesized_expression "(dVar60 * dVar62)" ( (binary_expression "dVar60 * dVar62" identifier * identifier) )) / identifier) + (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1400)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48);" (call_expression "(**(code **)(puVar56 + 0x2b9588))\n                  ((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9588)" * (pointer_expression "*(code **)(puVar56 + 0x2b9588)" * (cast_expression "(code **)(puVar56 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9588)" ( (binary_expression "puVar56 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)uVar63 >> 0x20),(int)uVar63,0,iVar7 + 0x4ff8,0x1000,puVar48)" ( (cast_expression "(int)((ulonglong)uVar63 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar63 >> 0x20)" ( (binary_expression "(ulonglong)uVar63 >> 0x20" (cast_expression "(ulonglong)uVar63" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar63" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (binary_expression "iVar7 + 0x4ff8" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6174,puVar48)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6174" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "iVar8 = *(int *)(puVar56 + 0x2b8dd4);" (assignment_expression "iVar8 = *(int *)(puVar56 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar61 >> 0x20),\n                 (int)uVar61)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6158" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)uVar61 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar61 >> 0x20)" ( (binary_expression "(ulonglong)uVar61 >> 0x20" (cast_expression "(ulonglong)uVar61" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar61" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0));" (assignment_expression "uVar61 = (**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0))" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9ea4))(dVar65,*(undefined8 *)(iVar8 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9ea4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9ea4)" * (pointer_expression "*(code **)(puVar56 + 0x2b9ea4)" * (cast_expression "(code **)(puVar56 + 0x2b9ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9ea4)" ( (binary_expression "puVar56 + 0x2b9ea4" identifier + number_literal) ))))) )) (argument_list "(dVar65,*(undefined8 *)(iVar8 + 0x7ba0))" ( identifier , (pointer_expression "*(undefined8 *)(iVar8 + 0x7ba0)" * (cast_expression "(undefined8 *)(iVar8 + 0x7ba0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x7ba0)" ( (binary_expression "iVar8 + 0x7ba0" identifier + number_literal) )))) )))) ;) (expression_statement "dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61);" (assignment_expression "dVar60 = (double)(**(code **)(puVar56 + 0x2b910c))(uVar61)" identifier = (cast_expression "(double)(**(code **)(puVar56 + 0x2b910c))(uVar61)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar56 + 0x2b910c))(uVar61)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b910c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b910c)" * (pointer_expression "*(code **)(puVar56 + 0x2b910c)" * (cast_expression "(code **)(puVar56 + 0x2b910c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b910c)" ( (binary_expression "puVar56 + 0x2b910c" identifier + number_literal) ))))) )) (argument_list "(uVar61)" ( identifier ))))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65);" (assignment_expression "dVar62 = (double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65)" identifier = (cast_expression "(double)(**(code **)(puVar56 + 0x2b9b5c))(dVar65)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar56 + 0x2b9b5c))(dVar65)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b5c)" * (cast_expression "(code **)(puVar56 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b5c)" ( (binary_expression "puVar56 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(dVar65)" ( identifier ))))) ;) (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8dcc);" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) ))))) ;) (if_statement "if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar32 = (uint)dVar60;\n      }\n      else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar60 < *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar60 < *(double *)(iVar7 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar32 = (uint)dVar60;\n      }" { (expression_statement "uVar32 = (uint)dVar60;" (assignment_expression "uVar32 = (uint)dVar60" identifier = (cast_expression "(uint)dVar60" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;" (assignment_expression "uVar32 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar60 - *(double *)(iVar7 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar60 - *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar60 - *(double *)(iVar7 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0);" (assignment_expression "dVar60 = dVar65 / *(double *)(iVar8 + 0x7ba0)" identifier = (binary_expression "dVar65 / *(double *)(iVar8 + 0x7ba0)" identifier / (pointer_expression "*(double *)(iVar8 + 0x7ba0)" * (cast_expression "(double *)(iVar8 + 0x7ba0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x7ba0)" ( (binary_expression "iVar8 + 0x7ba0" identifier + number_literal) )))))) ;) (if_statement "if (dVar60 < *(double *)(iVar7 + 0x1410)) {\n        uVar17 = (uint)dVar60;\n      }\n      else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar60 < *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar60 < *(double *)(iVar7 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar17 = (uint)dVar60;\n      }" { (expression_statement "uVar17 = (uint)dVar60;" (assignment_expression "uVar17 = (uint)dVar60" identifier = (cast_expression "(uint)dVar60" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000;" (assignment_expression "uVar17 = (int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar60 - *(double *)(iVar7 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar60 - *(double *)(iVar7 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar60 - *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar60 - *(double *)(iVar7 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar65 = (dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" identifier = (binary_expression "(dVar65 - dVar62) * *(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar65 - dVar62)" ( (binary_expression "dVar65 - dVar62" identifier - identifier) )) * (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd4) + -0x1680)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar65 < *(double *)(iVar7 + 0x1410)) {\n        uVar18 = (uint)dVar65;\n      }\n      else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar65 < *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar65 < *(double *)(iVar7 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar18 = (uint)dVar65;\n      }" { (expression_statement "uVar18 = (uint)dVar65;" (assignment_expression "uVar18 = (uint)dVar65" identifier = (cast_expression "(uint)dVar65" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000;" (assignment_expression "uVar18 = (int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar65 - *(double *)(iVar7 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar65 - *(double *)(iVar7 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar65 - *(double *)(iVar7 + 0x1410))" ( (binary_expression "dVar65 - *(double *)(iVar7 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar7 + 0x1410)" * (cast_expression "(double *)(iVar7 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1410)" ( (binary_expression "iVar7 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))\n                (file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6140,uVar17,uVar32,uVar18)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6140" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b942c))(0);" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b942c))(0)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b942c))(0)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b942c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b942c)" * (pointer_expression "*(code **)(puVar56 + 0x2b942c)" * (cast_expression "(code **)(puVar56 + 0x2b942c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b942c)" ( (binary_expression "puVar56 + 0x2b942c" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x611c,uVar29)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x611c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9978);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9978)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9978)" * (cast_expression "(code **)(puVar56 + 0x2b9978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9978)" ( (binary_expression "puVar56 + 0x2b9978" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);\n    iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);\n    if (iVar8 == 0) {\n      puStack_4198 = (undefined1 *)0x0;\n    }\n    else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }\n    if (image->signature != 0xabacadab) {\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    if (image->debug != MagickFalse) {\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }\n    pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);\n    if (pFVar49 == (FILE *)0x0) {\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }\n    (**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);\n    ppcVar15 = &pFVar49->_IO_write_base;\n    dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);\n    dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);\nLAB_000efcf0:\n    if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }\n    (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);\n    if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }\n    if ((int)image->number_channels < 1) {\n      PVar41 = image->alpha_trait;\n    }\n    else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }\n    if (PVar41 != UndefinedPixelTrait) {\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n  }" else (compound_statement "{\n    type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);\n    iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);\n    if (iVar8 == 0) {\n      puStack_4198 = (undefined1 *)0x0;\n    }\n    else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }\n    if (image->signature != 0xabacadab) {\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    if (image->debug != MagickFalse) {\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }\n    pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);\n    if (pFVar49 == (FILE *)0x0) {\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }\n    (**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);\n    ppcVar15 = &pFVar49->_IO_write_base;\n    dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);\n    dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);\nLAB_000efcf0:\n    if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }\n    (**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);\n    if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }\n    if ((int)image->number_channels < 1) {\n      PVar41 = image->alpha_trait;\n    }\n    else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }\n    if (PVar41 != UndefinedPixelTrait) {\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }\n    pcVar59 = *(code **)(puVar56 + 0x2b94ac);\n  }" { (expression_statement "type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7);" (assignment_expression "type = (**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9b80))(0x44,0,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b80))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b80)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b80)" * (cast_expression "(code **)(puVar56 + 0x2b9b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b80)" ( (binary_expression "puVar56 + 0x2b9b80" identifier + number_literal) ))))) )) (argument_list "(0x44,0,iVar7)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8);" (assignment_expression "iVar8 = (**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b99ac))(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar56 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar56 + 0x2b99ac)" * (cast_expression "(code **)(puVar56 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99ac)" ( (binary_expression "puVar56 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(image,*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6ad8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n      puStack_4198 = (undefined1 *)0x0;\n    }\n    else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      puStack_4198 = (undefined1 *)0x0;\n    }" { (expression_statement "puStack_4198 = (undefined1 *)0x0;" (assignment_expression "puStack_4198 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }" else (compound_statement "{\n      puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);\n    }" { (expression_statement "puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10);" (assignment_expression "puStack_4198 = (undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x2b982c))(iVar8,0,10)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b982c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b982c)" * (pointer_expression "*(code **)(puVar56 + 0x2b982c)" * (cast_expression "(code **)(puVar56 + 0x2b982c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b982c)" ( (binary_expression "puVar56 + 0x2b982c" identifier + number_literal) ))))) )) (argument_list "(iVar8,0,10)" ( identifier , number_literal , number_literal ))))) ;) }))) (if_statement "if (image->signature != 0xabacadab) {\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      uVar29 = 0x90;\n      pcVar59 = *(code **)(puVar56 + 0x2b9af4);\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);\n      return sVar16;\n    }" { (expression_statement "uVar29 = 0x90;" (assignment_expression "uVar29 = 0x90" identifier = number_literal) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9af4);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9af4)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9af4)" * (cast_expression "(code **)(puVar56 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9af4)" ( (binary_expression "puVar56 + 0x2b9af4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4;" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8dd0) + -0x5ba4" identifier = (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5ba4" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000f38e8:\n      sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);" statement_identifier : (expression_statement "sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7);" (assignment_expression "sVar16 = (*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7)" identifier = (call_expression "(*pcVar59)(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(*(int *)(puVar56 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar56 + 0x2b8dd0) + -0x6b00,uVar29,iVar7)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd4) + -0x3784" (pointer_expression "*(int *)(puVar56 + 0x2b8dd4)" * (cast_expression "(int *)(puVar56 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd4)" ( (binary_expression "puVar56 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier )))) ;)) (return_statement "return sVar16;" return identifier ;) })) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b99f8);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b99f8)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b99f8)" * (cast_expression "(code **)(puVar56 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99f8)" ( (binary_expression "puVar56 + 0x2b99f8" identifier + number_literal) ))))) ;) (if_statement "if (image->debug != MagickFalse) {\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n      (**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);\n      pcVar59 = *(code **)(puVar56 + 0x2b99f8);\n    }" { (expression_statement "(**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename);" (call_expression "(**(code **)(puVar56 + 0x2b96cc))\n                (0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b96cc))" ( (pointer_expression "**(code **)(puVar56 + 0x2b96cc)" * (pointer_expression "*(code **)(puVar56 + 0x2b96cc)" * (cast_expression "(code **)(puVar56 + 0x2b96cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b96cc)" ( (binary_expression "puVar56 + 0x2b96cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar56 + 0x2b8dd0) + -0x62ac,\n                 image->filename)" ( number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b99f8);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b99f8)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b99f8)" * (cast_expression "(code **)(puVar56 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b99f8)" ( (binary_expression "puVar56 + 0x2b99f8" identifier + number_literal) ))))) ;) })) (expression_statement "pFVar49 = (FILE *)(*pcVar59)(0x41,0x78);" (assignment_expression "pFVar49 = (FILE *)(*pcVar59)(0x41,0x78)" identifier = (cast_expression "(FILE *)(*pcVar59)(0x41,0x78)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar59)(0x41,0x78)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(0x41,0x78)" ( number_literal , number_literal ))))) ;) (if_statement "if (pFVar49 == (FILE *)0x0) {\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }" if (parenthesized_expression "(pFVar49 == (FILE *)0x0)" ( (binary_expression "pFVar49 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar29 = (**(code **)(puVar56 + 0x2b93d8))();\n      puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();\n      uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);\n      (**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;\n      (**(code **)(puVar56 + 0x2b9560))(uVar36);\n      (**(code **)(puVar56 + 0x2b979c))(uVar29);\n      (**(code **)(puVar56 + 0x2b923c))(uVar29);\n      (**(code **)(puVar56 + 0x2b9dd8))();\n      sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);\n      return sVar16;\n    }" { (expression_statement "uVar29 = (**(code **)(puVar56 + 0x2b93d8))();" (assignment_expression "uVar29 = (**(code **)(puVar56 + 0x2b93d8))()" identifier = (call_expression "(**(code **)(puVar56 + 0x2b93d8))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b93d8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b93d8)" * (pointer_expression "*(code **)(puVar56 + 0x2b93d8)" * (cast_expression "(code **)(puVar56 + 0x2b93d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b93d8)" ( (binary_expression "puVar56 + 0x2b93d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))();" (assignment_expression "puVar14 = (undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar56 + 0x2b9e9c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x2b9e9c))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9e9c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9e9c)" * (pointer_expression "*(code **)(puVar56 + 0x2b9e9c)" * (cast_expression "(code **)(puVar56 + 0x2b9e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9e9c)" ( (binary_expression "puVar56 + 0x2b9e9c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14);" (assignment_expression "uVar36 = (**(code **)(puVar56 + 0x2b98d8))(*puVar14)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b98d8))(*puVar14)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b98d8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b98d8)" * (pointer_expression "*(code **)(puVar56 + 0x2b98d8)" * (cast_expression "(code **)(puVar56 + 0x2b98d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b98d8)" ( (binary_expression "puVar56 + 0x2b98d8" identifier + number_literal) ))))) )) (argument_list "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) )))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)\n      ;" (call_expression "(**(code **)(puVar56 + 0x2b940c))\n                (uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b940c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b940c)" * (pointer_expression "*(code **)(puVar56 + 0x2b940c)" * (cast_expression "(code **)(puVar56 + 0x2b940c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b940c)" ( (binary_expression "puVar56 + 0x2b940c" identifier + number_literal) ))))) )) (argument_list "(uVar29,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar56 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar56 + 0x2b8dcc) + 0x16f8,*(int *)(puVar56 + 0x2b8dcc) + 0x3e28,uVar36)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x16f8" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x3e28" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9560))(uVar36);" (call_expression "(**(code **)(puVar56 + 0x2b9560))(uVar36)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9560)" * (pointer_expression "*(code **)(puVar56 + 0x2b9560)" * (cast_expression "(code **)(puVar56 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9560)" ( (binary_expression "puVar56 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uVar36)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b979c))(uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b979c))(uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b979c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b979c)" * (pointer_expression "*(code **)(puVar56 + 0x2b979c)" * (cast_expression "(code **)(puVar56 + 0x2b979c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b979c)" ( (binary_expression "puVar56 + 0x2b979c" identifier + number_literal) ))))) )) (argument_list "(uVar29)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b923c))(uVar29);" (call_expression "(**(code **)(puVar56 + 0x2b923c))(uVar29)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b923c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b923c)" * (pointer_expression "*(code **)(puVar56 + 0x2b923c)" * (cast_expression "(code **)(puVar56 + 0x2b923c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b923c)" ( (binary_expression "puVar56 + 0x2b923c" identifier + number_literal) ))))) )) (argument_list "(uVar29)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x2b9dd8))();" (call_expression "(**(code **)(puVar56 + 0x2b9dd8))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9dd8))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9dd8)" * (pointer_expression "*(code **)(puVar56 + 0x2b9dd8)" * (cast_expression "(code **)(puVar56 + 0x2b9dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9dd8)" ( (binary_expression "puVar56 + 0x2b9dd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1);" (assignment_expression "sVar16 = (**(code **)(puVar56 + 0x2b9b4c))(1)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9b4c))(1)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9b4c))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9b4c)" * (pointer_expression "*(code **)(puVar56 + 0x2b9b4c)" * (cast_expression "(code **)(puVar56 + 0x2b9b4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9b4c)" ( (binary_expression "puVar56 + 0x2b9b4c" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal )))) ;) (return_statement "return sVar16;" return identifier ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78);" (call_expression "(**(code **)(puVar56 + 0x2b9bc0))(pFVar49,0,0x1e78)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9bc0))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9bc0)" * (pointer_expression "*(code **)(puVar56 + 0x2b9bc0)" * (cast_expression "(code **)(puVar56 + 0x2b9bc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9bc0)" ( (binary_expression "puVar56 + 0x2b9bc0" identifier + number_literal) ))))) )) (argument_list "(pFVar49,0,0x1e78)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "ppcVar15 = &pFVar49->_IO_write_base;" (assignment_expression "ppcVar15 = &pFVar49->_IO_write_base" identifier = (pointer_expression "&pFVar49->_IO_write_base" & (field_expression "pFVar49->_IO_write_base" identifier -> field_identifier))) ;) (expression_statement "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0);" (assignment_expression "dVar60 = *(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0)" identifier = (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x1ac0" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60);" (assignment_expression "dVar65 = *(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60)" identifier = (pointer_expression "*(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60)" * (cast_expression "(double *)(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + -0x5b60)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5b60" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    } while ((char **)&pFVar49[0x33]._old_offset != ppcVar15);" do (compound_statement "{\n      while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }\n      *(double *)ppcVar15 = dVar60;\n      ppcVar15 = ppcVar15 + 0x1e;\n    }" { (while_statement "while (type != MinimumStatistic) {\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }" while (parenthesized_expression "(type != MinimumStatistic)" ( (binary_expression "type != MinimumStatistic" identifier != identifier) )) (compound_statement "{\n        *(double *)(ppcVar15 + 2) = dVar65;\n        ppcVar15 = ppcVar15 + 0x1e;\n        if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;\n      }" { (expression_statement "*(double *)(ppcVar15 + 2) = dVar65;" (assignment_expression "*(double *)(ppcVar15 + 2) = dVar65" (pointer_expression "*(double *)(ppcVar15 + 2)" * (cast_expression "(double *)(ppcVar15 + 2)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppcVar15 + 2)" ( (binary_expression "ppcVar15 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppcVar15 = ppcVar15 + 0x1e;" (assignment_expression "ppcVar15 = ppcVar15 + 0x1e" identifier = (binary_expression "ppcVar15 + 0x1e" identifier + number_literal)) ;) (if_statement "if ((char **)&pFVar49[0x33]._old_offset == ppcVar15) goto LAB_000efcf0;" if (parenthesized_expression "((char **)&pFVar49[0x33]._old_offset == ppcVar15)" ( (binary_expression "(char **)&pFVar49[0x33]._old_offset == ppcVar15" (cast_expression "(char **)&pFVar49[0x33]._old_offset" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pFVar49[0x33]._old_offset" & (field_expression "pFVar49[0x33]._old_offset" (subscript_expression "pFVar49[0x33]" identifier [ number_literal ]) . field_identifier))) == identifier) )) (goto_statement "goto LAB_000efcf0;" goto statement_identifier ;)) })) (expression_statement "*(double *)ppcVar15 = dVar60;" (assignment_expression "*(double *)ppcVar15 = dVar60" (pointer_expression "*(double *)ppcVar15" * (cast_expression "(double *)ppcVar15" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "ppcVar15 = ppcVar15 + 0x1e;" (assignment_expression "ppcVar15 = ppcVar15 + 0x1e" identifier = (binary_expression "ppcVar15 + 0x1e" identifier + number_literal)) ;) }) while (parenthesized_expression "((char **)&pFVar49[0x33]._old_offset != ppcVar15)" ( (binary_expression "(char **)&pFVar49[0x33]._old_offset != ppcVar15" (cast_expression "(char **)&pFVar49[0x33]._old_offset" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pFVar49[0x33]._old_offset" & (field_expression "pFVar49[0x33]._old_offset" (subscript_expression "pFVar49[0x33]" identifier [ number_literal ]) . field_identifier))) != identifier) )) ;) (labeled_statement "LAB_000efcf0:\n    if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }" statement_identifier : (if_statement "if (0 < (int)image->rows) {\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }" if (parenthesized_expression "(0 < (int)image->rows)" ( (binary_expression "0 < (int)image->rows" number_literal < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) (compound_statement "{\n      iVar8 = 0;\n      sVar37 = image->columns;\n      uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);\n      pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);\n    }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "sVar37 = image->columns;" (assignment_expression "sVar37 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708);" (assignment_expression "uVar67 = (ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(*(int *)(puVar56 + 0x2b8dcc) + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dcc) + 0x3708)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0x3708" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9c50);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9c50)" * (cast_expression "(code **)(puVar56 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9c50)" ( (binary_expression "puVar56 + 0x2b9c50" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      } while (iVar8 < (int)sVar40);" do (compound_statement "{\n        iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);\n        if (iVar9 == 0) break;\n        sVar37 = image->columns;\n        sVar40 = 0;\n        if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }\n        sVar40 = image->rows;\nLAB_000efe04:\n        iVar8 = iVar8 + 1;\n        pcVar59 = *(code **)(puVar56 + 0x2b9c50);\n      }" { (expression_statement "iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36);" (assignment_expression "iVar9 = (*pcVar59)(image,0,iVar8,sVar37,1,uVar36)" identifier = (call_expression "(*pcVar59)(image,0,iVar8,sVar37,1,uVar36)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(image,0,iVar8,sVar37,1,uVar36)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar37 = image->columns;" (assignment_expression "sVar37 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "sVar40 = 0;" (assignment_expression "sVar40 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)sVar37) {\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }" if (parenthesized_expression "(0 < (int)sVar37)" ( (binary_expression "0 < (int)sVar37" number_literal < (cast_expression "(int)sVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          sVar42 = image->number_channels;\n          pPVar31 = image->channel_map;\n          PVar41 = pPVar31[6].traits;\n          do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);\n        }" { (expression_statement "sVar42 = image->number_channels;" (assignment_expression "sVar42 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "pPVar31 = image->channel_map;" (assignment_expression "pPVar31 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "PVar41 = pPVar31[6].traits;" (assignment_expression "PVar41 = pPVar31[6].traits" identifier = (field_expression "pPVar31[6].traits" (subscript_expression "pPVar31[6]" identifier [ number_literal ]) . field_identifier)) ;) (do_statement "do {\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          } while (sVar37 != sVar40);" do (compound_statement "{\n            while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }\n            sVar40 = sVar40 + 1;\n            iVar9 = iVar10;\n          }" { (while_statement "while ((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))) {\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }" while (parenthesized_expression "((iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67)))" ( (parenthesized_expression "(iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67))" ( (comma_expression "iVar10 = iVar9 + sVar42 * 4, PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67)" (assignment_expression "iVar10 = iVar9 + sVar42 * 4" identifier = (binary_expression "iVar9 + sVar42 * 4" identifier + (binary_expression "sVar42 * 4" identifier * number_literal))) , (binary_expression "PVar41 != UndefinedPixelTrait &&\n                   (*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67)" (binary_expression "PVar41 != UndefinedPixelTrait" identifier != identifier) && (parenthesized_expression "(*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67)" ( (binary_expression "*(float *)(iVar9 + pPVar31[6].offset * 4) <= (float)uVar67" (pointer_expression "*(float *)(iVar9 + pPVar31[6].offset * 4)" * (cast_expression "(float *)(iVar9 + pPVar31[6].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + pPVar31[6].offset * 4)" ( (binary_expression "iVar9 + pPVar31[6].offset * 4" identifier + (binary_expression "pPVar31[6].offset * 4" (field_expression "pPVar31[6].offset" (subscript_expression "pPVar31[6]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))) <= (cast_expression "(float)uVar67" ( (type_descriptor "float" primitive_type) ) identifier)) )))) )) )) (compound_statement "{\n              sVar40 = sVar40 + 1;\n              iVar9 = iVar10;\n              if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }\n            }" { (expression_statement "sVar40 = sVar40 + 1;" (assignment_expression "sVar40 = sVar40 + 1" identifier = (binary_expression "sVar40 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (if_statement "if (sVar37 == sVar40) {\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }" if (parenthesized_expression "(sVar37 == sVar40)" ( (binary_expression "sVar37 == sVar40" identifier == identifier) )) (compound_statement "{\n                sVar40 = image->rows;\n                goto LAB_000efe04;\n              }" { (expression_statement "sVar40 = image->rows;" (assignment_expression "sVar40 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000efe04;" goto statement_identifier ;) })) })) (if_statement "if (0 < (int)sVar42) {\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }" if (parenthesized_expression "(0 < (int)sVar42)" ( (binary_expression "0 < (int)sVar42" number_literal < (cast_expression "(int)sVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pfVar30 = (float *)(iVar10 + sVar42 * -4);\n              pPVar27 = pPVar31;\nLAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);\n            }" { (expression_statement "pfVar30 = (float *)(iVar10 + sVar42 * -4);" (assignment_expression "pfVar30 = (float *)(iVar10 + sVar42 * -4)" identifier = (cast_expression "(float *)(iVar10 + sVar42 * -4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + sVar42 * -4)" ( (binary_expression "iVar10 + sVar42 * -4" identifier + (binary_expression "sVar42 * -4" identifier * number_literal)) )))) ;) (expression_statement "pPVar27 = pPVar31;" (assignment_expression "pPVar27 = pPVar31" identifier = identifier) ;) (labeled_statement "LAB_000efd9c:\n              do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);" statement_identifier : (do_statement "do {\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              } while (pPVar31 + sVar42 != pPVar27);" do (compound_statement "{\n                PVar43 = pPVar27->channel;\n                if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }\n                pPVar27 = pPVar27 + 1;\n                pfVar30 = pfVar30 + 1;\n              }" { (expression_statement "PVar43 = pPVar27->channel;" (assignment_expression "PVar43 = pPVar27->channel" identifier = (field_expression "pPVar27->channel" identifier -> field_identifier)) ;) (if_statement "if (pPVar31[PVar43].traits != UndefinedPixelTrait) {\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }" if (parenthesized_expression "(pPVar31[PVar43].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar31[PVar43].traits != UndefinedPixelTrait" (field_expression "pPVar31[PVar43].traits" (subscript_expression "pPVar31[PVar43]" identifier [ identifier ]) . field_identifier) != identifier) )) (compound_statement "{\n                  dVar65 = (double)*pfVar30;\n                  if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }\n                }" { (expression_statement "dVar65 = (double)*pfVar30;" (assignment_expression "dVar65 = (double)*pfVar30" identifier = (cast_expression "(double)*pfVar30" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar30" * identifier))) ;) (if_statement "if (type == MinimumStatistic) {\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }" if (parenthesized_expression "(type == MinimumStatistic)" ( (binary_expression "type == MinimumStatistic" identifier == identifier) )) (compound_statement "{\n                    if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }\n                  }" { (if_statement "if (dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)) {\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }" if (parenthesized_expression "(dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37))" ( (binary_expression "dVar65 < *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)" identifier < (pointer_expression "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)" * (cast_expression "(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)" ( (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78 + -0x37" (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78" (field_expression "pFVar49->_shortbuf" identifier -> field_identifier) + (binary_expression "PVar43 * 0x78" identifier * number_literal)) + number_literal) ))))) )) (compound_statement "{\n                      pPVar27 = pPVar27 + 1;\n                      *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;\n                      pfVar30 = pfVar30 + 1;\n                      if (pPVar31 + sVar42 == pPVar27) break;\n                      goto LAB_000efd9c;\n                    }" { (expression_statement "pPVar27 = pPVar27 + 1;" (assignment_expression "pPVar27 = pPVar27 + 1" identifier = (binary_expression "pPVar27 + 1" identifier + number_literal)) ;) (expression_statement "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65;" (assignment_expression "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37) = dVar65" (pointer_expression "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)" * (cast_expression "(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar49->_shortbuf + PVar43 * 0x78 + -0x37)" ( (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78 + -0x37" (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78" (field_expression "pFVar49->_shortbuf" identifier -> field_identifier) + (binary_expression "PVar43 * 0x78" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "pfVar30 = pfVar30 + 1;" (assignment_expression "pfVar30 = pfVar30 + 1" identifier = (binary_expression "pfVar30 + 1" identifier + number_literal)) ;) (if_statement "if (pPVar31 + sVar42 == pPVar27) break;" if (parenthesized_expression "(pPVar31 + sVar42 == pPVar27)" ( (binary_expression "pPVar31 + sVar42 == pPVar27" (binary_expression "pPVar31 + sVar42" identifier + identifier) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000efd9c;" goto statement_identifier ;) })) }) (else_clause "else if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }" else (if_statement "if (*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65) {\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }" if (parenthesized_expression "(*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65)" ( (binary_expression "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) < dVar65" (pointer_expression "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f)" * (cast_expression "(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f)" ( (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f" (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78" (field_expression "pFVar49->_shortbuf" identifier -> field_identifier) + (binary_expression "PVar43 * 0x78" identifier * number_literal)) + number_literal) )))) < identifier) )) (compound_statement "{\n                    *(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;\n                  }" { (expression_statement "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65;" (assignment_expression "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f) = dVar65" (pointer_expression "*(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f)" * (cast_expression "(double *)(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f)" ( (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78 + -0x2f" (binary_expression "pFVar49->_shortbuf + PVar43 * 0x78" (field_expression "pFVar49->_shortbuf" identifier -> field_identifier) + (binary_expression "PVar43 * 0x78" identifier * number_literal)) + number_literal) )))) = identifier) ;) })))) })) (expression_statement "pPVar27 = pPVar27 + 1;" (assignment_expression "pPVar27 = pPVar27 + 1" identifier = (binary_expression "pPVar27 + 1" identifier + number_literal)) ;) (expression_statement "pfVar30 = pfVar30 + 1;" (assignment_expression "pfVar30 = pfVar30 + 1" identifier = (binary_expression "pfVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pPVar31 + sVar42 != pPVar27)" ( (binary_expression "pPVar31 + sVar42 != pPVar27" (binary_expression "pPVar31 + sVar42" identifier + identifier) != identifier) )) ;)) })) (expression_statement "sVar40 = sVar40 + 1;" (assignment_expression "sVar40 = sVar40 + 1" identifier = (binary_expression "sVar40 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(sVar37 != sVar40)" ( (binary_expression "sVar37 != sVar40" identifier != identifier) )) ;) })) (expression_statement "sVar40 = image->rows;" (assignment_expression "sVar40 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (labeled_statement "LAB_000efe04:\n        iVar8 = iVar8 + 1;" statement_identifier : (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b9c50);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b9c50)" * (cast_expression "(code **)(puVar56 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9c50)" ( (binary_expression "puVar56 + 0x2b9c50" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar8 < (int)sVar40)" ( (binary_expression "iVar8 < (int)sVar40" identifier < (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (expression_statement "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7);" (call_expression "(**(code **)(puVar56 + 0x2b9a30))(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar56 + 0x2b9a30)" * (cast_expression "(code **)(puVar56 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9a30)" ( (binary_expression "puVar56 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(file_00,*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8,iVar7)" ( identifier , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6ac8" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (CVar50 < JzazbzColorspace) {\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }" if (parenthesized_expression "(CVar50 < JzazbzColorspace)" ( (binary_expression "CVar50 < JzazbzColorspace" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();\n      return sVar16;\n    }" { comment comment (expression_statement "sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ();" (assignment_expression "sVar16 = (*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ()" identifier = (call_expression "(*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))\n                         ()" (parenthesized_expression "(*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c))" ( (pointer_expression "*(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c)" * (cast_expression "(code *)(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c)" ( (binary_expression "puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4) + 0x2c0d9c" (binary_expression "puVar56 +\n                         *(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4)" * (cast_expression "(int *)(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x60b0 + CVar50 * 4" (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x60b0" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "CVar50 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar16;" return identifier ;) })) (if_statement "if ((int)image->number_channels < 1) {\n      PVar41 = image->alpha_trait;\n    }\n    else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }" if (parenthesized_expression "((int)image->number_channels < 1)" ( (binary_expression "(int)image->number_channels < 1" (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n      PVar41 = image->alpha_trait;\n    }" { (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }) (else_clause "else {\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }" else (compound_statement "{\n      PVar43 = CyanPixelChannel;\n      iVar7 = *(int *)(puVar56 + 0x2b8dd0);\n      do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);\n      PVar41 = image->alpha_trait;\n    }" { (expression_statement "PVar43 = CyanPixelChannel;" (assignment_expression "PVar43 = CyanPixelChannel" identifier = identifier) ;) (expression_statement "iVar7 = *(int *)(puVar56 + 0x2b8dd0);" (assignment_expression "iVar7 = *(int *)(puVar56 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) ))))) ;) (do_statement "do {\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      } while ((int)PVar43 < (int)image->number_channels);" do (compound_statement "{\n        PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);\n        PVar43 = PVar43 + CbPixelChannel;\n      }" { (expression_statement "PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49);" (call_expression "PrintChannelLocations\n                  (file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49)" identifier (argument_list "(file_00,image,PVar43,(char *)(iVar7 + -0x6ab0),type,(size_t)puStack_4198,\n                   (ChannelStatistics *)pFVar49)" ( identifier , identifier , identifier , (cast_expression "(char *)(iVar7 + -0x6ab0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x6ab0)" ( (binary_expression "iVar7 + -0x6ab0" identifier + number_literal) ))) , identifier , (cast_expression "(size_t)puStack_4198" ( (type_descriptor "size_t" primitive_type) ) identifier) , (cast_expression "(ChannelStatistics *)pFVar49" ( (type_descriptor "ChannelStatistics *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "PVar43 = PVar43 + CbPixelChannel;" (assignment_expression "PVar43 = PVar43 + CbPixelChannel" identifier = (binary_expression "PVar43 + CbPixelChannel" identifier + identifier)) ;) }) while (parenthesized_expression "((int)PVar43 < (int)image->number_channels)" ( (binary_expression "(int)PVar43 < (int)image->number_channels" (cast_expression "(int)PVar43" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)image->number_channels" ( (type_descriptor "int" primitive_type) ) (field_expression "image->number_channels" identifier -> field_identifier))) )) ;) (expression_statement "PVar41 = image->alpha_trait;" (assignment_expression "PVar41 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) }))) (if_statement "if (PVar41 != UndefinedPixelTrait) {\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }" if (parenthesized_expression "(PVar41 != UndefinedPixelTrait)" ( (binary_expression "PVar41 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n      PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);\n    }" { (expression_statement "PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49);" (call_expression "PrintChannelLocations\n                (file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49)" identifier (argument_list "(file_00,image,AlphaPixelChannel,(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158),type\n                 ,(size_t)puStack_4198,(ChannelStatistics *)pFVar49)" ( identifier , identifier , identifier , (cast_expression "(char *)(*(int *)(puVar56 + 0x2b8dd0) + 0x158)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x2b8dd0) + 0x158)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) , identifier , (cast_expression "(size_t)puStack_4198" ( (type_descriptor "size_t" primitive_type) ) identifier) , (cast_expression "(ChannelStatistics *)pFVar49" ( (type_descriptor "ChannelStatistics *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "pcVar59 = *(code **)(puVar56 + 0x2b94ac);" (assignment_expression "pcVar59 = *(code **)(puVar56 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar56 + 0x2b94ac)" * (cast_expression "(code **)(puVar56 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b94ac)" ( (binary_expression "puVar56 + 0x2b94ac" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar59)(pFVar49);" (call_expression "(*pcVar59)(pFVar49)" (parenthesized_expression "(*pcVar59)" ( (pointer_expression "*pcVar59" * identifier) )) (argument_list "(pFVar49)" ( identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar56 + 0x2b9208))(file_00);" (assignment_expression "iVar7 = (**(code **)(puVar56 + 0x2b9208))(file_00)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9208))(file_00)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9208))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9208)" * (pointer_expression "*(code **)(puVar56 + 0x2b9208)" * (cast_expression "(code **)(puVar56 + 0x2b9208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9208)" ( (binary_expression "puVar56 + 0x2b9208" identifier + number_literal) ))))) )) (argument_list "(file_00)" ( identifier )))) ;) (if_statement "if (iStack_10c == *piVar13) {\n    return (uint)(iVar7 == 0);\n  }" if (parenthesized_expression "(iStack_10c == *piVar13)" ( (binary_expression "iStack_10c == *piVar13" identifier == (pointer_expression "*piVar13" * identifier)) )) (compound_statement "{\n    return (uint)(iVar7 == 0);\n  }" { (return_statement "return (uint)(iVar7 == 0);" return (call_expression "(uint)(iVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) ))) ;) })) (expression_statement "(**(code **)(puVar56 + 0x2b9550))();" (call_expression "(**(code **)(puVar56 + 0x2b9550))()" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9550))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9550)" * (pointer_expression "*(code **)(puVar56 + 0x2b9550)" * (cast_expression "(code **)(puVar56 + 0x2b9550)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9550)" ( (binary_expression "puVar56 + 0x2b9550" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_000f38b4:\n  sVar16 = (**(code **)(puVar56 + 0x2b9af4))\n                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c);" statement_identifier : (expression_statement "sVar16 = (**(code **)(puVar56 + 0x2b9af4))\n                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c);" (assignment_expression "sVar16 = (**(code **)(puVar56 + 0x2b9af4))\n                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c)" identifier = (call_expression "(**(code **)(puVar56 + 0x2b9af4))\n                     (*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c)" (parenthesized_expression "(**(code **)(puVar56 + 0x2b9af4))" ( (pointer_expression "**(code **)(puVar56 + 0x2b9af4)" * (pointer_expression "*(code **)(puVar56 + 0x2b9af4)" * (cast_expression "(code **)(puVar56 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2b9af4)" ( (binary_expression "puVar56 + 0x2b9af4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar56 + 0x2b8dcc) + 0xdd0,*(int *)(puVar56 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c)" ( (binary_expression "*(int *)(puVar56 + 0x2b8dcc) + 0xdd0" (pointer_expression "*(int *)(puVar56 + 0x2b8dcc)" * (cast_expression "(int *)(puVar56 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dcc)" ( (binary_expression "puVar56 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar56 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar56 + 0x2b8dd0)" * (cast_expression "(int *)(puVar56 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2b8dd0)" ( (binary_expression "puVar56 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return sVar16;" return identifier ;) })))
(translation_unit "uint FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)\n\n{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}\n\n" (function_definition "uint FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)\n\n{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}" type_identifier (function_declarator "FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "double param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "float *pfVar23;" primitive_type (pointer_declarator "*pfVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "double *pdVar30;" primitive_type (pointer_declarator "*pdVar30" * identifier) ;) (declaration "double *pdVar31;" primitive_type (pointer_declarator "*pdVar31" * identifier) ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined1 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "char *pcVar37;" primitive_type (pointer_declarator "*pcVar37" * identifier) ;) (declaration "undefined *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "undefined8 *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "undefined8 uVar42;" type_identifier identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "undefined8 uVar45;" type_identifier identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "ulonglong uVar48;" type_identifier identifier ;) (declaration "double *pdStack_4198;" primitive_type (pointer_declarator "*pdStack_4198" * identifier) ;) (declaration "int iStack_4190;" primitive_type identifier ;) (declaration "int iStack_418c;" primitive_type identifier ;) (declaration "int iStack_4180;" primitive_type identifier ;) (declaration "undefined4 uStack_416c;" type_identifier identifier ;) (declaration "int aiStack_4168 [4];" primitive_type (array_declarator "aiStack_4168 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_4158;" type_identifier identifier ;) (declaration "int iStack_4150;" primitive_type identifier ;) (declaration "double dStack_4140;" primitive_type identifier ;) (declaration "double dStack_4138;" primitive_type identifier ;) (declaration "double dStack_4130;" primitive_type identifier ;) (declaration "double dStack_4128;" primitive_type identifier ;) (declaration "double dStack_4120;" primitive_type identifier ;) (declaration "double dStack_4118;" primitive_type identifier ;) (declaration "undefined1 auStack_410c [4095];" type_identifier (array_declarator "auStack_410c [4095]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_310d [4097];" type_identifier (array_declarator "auStack_310d [4097]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_210c [4096];" type_identifier (array_declarator "auStack_210c [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_110c [4096];" type_identifier (array_declarator "auStack_110c [4096]" identifier [ number_literal ]) ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "double *pdStack_108;" primitive_type (pointer_declarator "*pdStack_108" * identifier) ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "undefined8 *puStack_100;" type_identifier (pointer_declarator "*puStack_100" * identifier) ;) (declaration "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "undefined4 uStack_f4;" type_identifier identifier ;) (declaration "undefined *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "double dStack_e0;" primitive_type identifier ;) (declaration "double dStack_d8;" primitive_type identifier ;) (declaration "double dStack_d0;" primitive_type identifier ;) (declaration "double local_b0;" primitive_type identifier ;) (declaration "double local_a8;" primitive_type identifier ;) (declaration "double local_a0;" primitive_type identifier ;) (declaration "double local_98;" primitive_type identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined4 local_80 [15];" type_identifier (array_declarator "local_80 [15]" identifier [ number_literal ]) ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar12 = PTR___stack_chk_guard_003a9230" 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 "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);" (assignment_expression "puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" identifier = (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60f0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60f0" identifier + number_literal) )))) ;) (expression_statement "puVar13 = &local_88;" (assignment_expression "puVar13 = &local_88" identifier = (pointer_expression "&local_88" & identifier)) ;) (do_statement "do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));" do (compound_statement "{\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  }" { (expression_statement "puVar3 = puVar11 + 4;" (assignment_expression "puVar3 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)puVar13 = *puVar11;" (assignment_expression "*(undefined4 *)puVar13 = *puVar11" (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "uVar26 = puVar11[2];" (assignment_expression "uVar26 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar11[3];" (assignment_expression "uVar21 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar13 + 4) = puVar11[1];" (assignment_expression "*(undefined4 *)((int)puVar13 + 4) = puVar11[1]" (pointer_expression "*(undefined4 *)((int)puVar13 + 4)" * (cast_expression "(undefined4 *)((int)puVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + 4)" ( (binary_expression "(int)puVar13 + 4" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + 1) = uVar26;" (assignment_expression "*(undefined4 *)(puVar13 + 1) = uVar26" (pointer_expression "*(undefined4 *)(puVar13 + 1)" * (cast_expression "(undefined4 *)(puVar13 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 1)" ( (binary_expression "puVar13 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar13 + 0xc) = uVar21;" (assignment_expression "*(undefined4 *)((int)puVar13 + 0xc) = uVar21" (pointer_expression "*(undefined4 *)((int)puVar13 + 0xc)" * (cast_expression "(undefined4 *)((int)puVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + 0xc)" ( (binary_expression "(int)puVar13 + 0xc" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puVar3;" (assignment_expression "puVar11 = puVar3" identifier = identifier) ;) (expression_statement "puVar13 = puVar13 + 2;" (assignment_expression "puVar13 = puVar13 + 2" identifier = (binary_expression "puVar13 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0))" ( (binary_expression "puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" identifier != (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60b0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60b0" identifier + number_literal) )))) )) ;) (expression_statement "pdVar30 = (double *)(param_6 + param_2 * 0x80);" (assignment_expression "pdVar30 = (double *)(param_6 + param_2 * 0x80)" identifier = (cast_expression "(double *)(param_6 + param_2 * 0x80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + param_2 * 0x80)" ( (binary_expression "param_6 + param_2 * 0x80" identifier + (binary_expression "param_2 * 0x80" identifier * number_literal)) )))) ;) (expression_statement "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);" (assignment_expression "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ef0" identifier + number_literal) )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar46 = pdVar30[9];" (assignment_expression "dVar46 = pdVar30[9]" identifier = (subscript_expression "pdVar30[9]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar30[10];" (assignment_expression "local_a0 = pdVar30[10]" identifier = (subscript_expression "pdVar30[10]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a8._4_4_)" identifier (argument_list "(uVar26,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" identifier = identifier) ;) (expression_statement "iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);" (assignment_expression "iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ee4" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar46 = pdVar30[0xb];" (assignment_expression "dVar46 = pdVar30[0xb]" identifier = (subscript_expression "pdVar30[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar30[0xc];" (assignment_expression "local_a0 = pdVar30[0xc]" identifier = (subscript_expression "pdVar30[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a8._4_4_)" identifier (argument_list "(uVar26,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);" (assignment_expression "iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ec8" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_b0 = pdVar30[0xd];" (assignment_expression "local_b0 = pdVar30[0xd]" identifier = (subscript_expression "pdVar30[0xd]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);" (assignment_expression "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e98" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_b0 = pdVar30[0xe];" (assignment_expression "local_b0 = pdVar30[0xe]" identifier = (subscript_expression "pdVar30[0xe]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);" (assignment_expression "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e7c" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar46 = param_5 * pdVar30[0xf];" (assignment_expression "dVar46 = param_5 * pdVar30[0xf]" identifier = (binary_expression "param_5 * pdVar30[0xf]" identifier * (subscript_expression "pdVar30[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_a0 = pdVar30[0xf];" (assignment_expression "local_a0 = pdVar30[0xf]" identifier = (subscript_expression "pdVar30[0xf]" identifier [ number_literal ])) ;) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a8._4_4_)" identifier (argument_list "(uVar26,local_a8._4_4_)" ( identifier , (field_expression "local_a8._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);" (assignment_expression "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e58" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;" (assignment_expression "uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9" identifier = (binary_expression "iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9" (binary_expression "iVar4 + iVar5 + iVar6 + iVar7 + iVar8" (binary_expression "iVar4 + iVar5 + iVar6 + iVar7" (binary_expression "iVar4 + iVar5 + iVar6" (binary_expression "iVar4 + iVar5" identifier + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) (expression_statement "puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;" (assignment_expression "puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30" identifier = (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e30" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = &local_88;" (assignment_expression "puVar13 = &local_88" identifier = (pointer_expression "&local_88" & identifier)) ;) (do_statement "do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);" do (compound_statement "{\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  }" { (expression_statement "puVar39 = puVar13 + 1;" (assignment_expression "puVar39 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "pdVar31 = pdVar30 + 1;" (assignment_expression "pdVar31 = pdVar30 + 1" identifier = (binary_expression "pdVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "dVar47 = *pdVar30;" (assignment_expression "dVar47 = *pdVar30" identifier = (pointer_expression "*pdVar30" * identifier)) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);" (assignment_expression "dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" identifier = (cast_expression "(double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" (parenthesized_expression "(*(code *)PTR_pow_003a971c)" ( (pointer_expression "*(code *)PTR_pow_003a971c" * (cast_expression "(code *)PTR_pow_003a971c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,*puVar13)" ( identifier , (pointer_expression "*puVar13" * identifier) ))))) ;) (expression_statement "dVar47 = dVar47 / dVar41;" (assignment_expression "dVar47 = dVar47 / dVar41" identifier = (binary_expression "dVar47 / dVar41" identifier / identifier)) ;) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" identifier = (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" ( (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" * (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "local_98 = *pdVar30;" (assignment_expression "local_98 = *pdVar30" identifier = (pointer_expression "*pdVar30" * identifier)) ;) (expression_statement "local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);" (assignment_expression "local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar26,local_a0._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar26,local_a0._4_4_)" identifier (argument_list "(uVar26,local_a0._4_4_)" ( identifier , (field_expression "local_a0._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);" (assignment_expression "local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_)" identifier = (cast_expression "(double)CONCAT44(uVar21,local_b0._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar21,local_b0._4_4_)" identifier (argument_list "(uVar21,local_b0._4_4_)" ( identifier , (field_expression "local_b0._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "iVar5 = iVar4 + 1;" (assignment_expression "iVar5 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "dVar41 = (double)iVar4 + dVar46;" (assignment_expression "dVar41 = (double)iVar4 + dVar46" identifier = (binary_expression "(double)iVar4 + dVar46" (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar32 = puVar34;" (assignment_expression "puVar32 = puVar34" identifier = identifier) ;) (expression_statement "local_a8 = dVar47;" (assignment_expression "local_a8 = dVar47" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);" (assignment_expression "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1)" identifier = (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(param_1)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" ( (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" * (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar36 = uVar36 + iVar4;" (assignment_expression "uVar36 = uVar36 + iVar4" identifier = (binary_expression "uVar36 + iVar4" identifier + identifier)) ;) (expression_statement "pdVar30 = pdVar31;" (assignment_expression "pdVar30 = pdVar31" identifier = identifier) ;) (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) (expression_statement "puVar13 = puVar39;" (assignment_expression "puVar13 = puVar39" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 != 8)" ( (binary_expression "iVar5 != 8" identifier != number_literal) )) ;) (if_statement "if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }" if (parenthesized_expression "(local_44 == *(int **)puVar12)" ( (binary_expression "local_44 == *(int **)puVar12" identifier == (pointer_expression "*(int **)puVar12" * (cast_expression "(int **)puVar12" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar36;\n  }" { (return_statement "return uVar36;" return identifier ;) })) (expression_statement "pcVar40 = IdentifyImage;" (assignment_expression "pcVar40 = IdentifyImage" identifier = identifier) ;) (expression_statement "piVar22 = local_44;" (assignment_expression "piVar22 = local_44" identifier = identifier) ;) (expression_statement "puVar38 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar38 = 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 "uVar26 = SUB84(dVar41,0);" (assignment_expression "uVar26 = SUB84(dVar41,0)" identifier = (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal )))) ;) (expression_statement "piVar10 = *(int **)(puVar38 + 0x2b971c);" (assignment_expression "piVar10 = *(int **)(puVar38 + 0x2b971c)" identifier = (pointer_expression "*(int **)(puVar38 + 0x2b971c)" * (cast_expression "(int **)(puVar38 + 0x2b971c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b971c)" ( (binary_expression "puVar38 + 0x2b971c" identifier + number_literal) ))))) ;) (expression_statement "puStack_f0 = puVar12;" (assignment_expression "puStack_f0 = puVar12" identifier = identifier) ;) (expression_statement "uStack_f4 = 8;" (assignment_expression "uStack_f4 = 8" identifier = number_literal) ;) (expression_statement "iStack_10c = *piVar10;" (assignment_expression "iStack_10c = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "pdStack_108 = pdVar31;" (assignment_expression "pdStack_108 = pdVar31" identifier = identifier) ;) (expression_statement "iStack_104 = iVar5;" (assignment_expression "iStack_104 = iVar5" identifier = identifier) ;) (expression_statement "puStack_100 = puVar39;" (assignment_expression "puStack_100 = puVar39" identifier = identifier) ;) (expression_statement "uStack_fc = param_1;" (assignment_expression "uStack_fc = param_1" identifier = identifier) ;) (expression_statement "puStack_f8 = puVar34;" (assignment_expression "puStack_f8 = puVar34" identifier = identifier) ;) (expression_statement "uStack_ec = uVar36;" (assignment_expression "uStack_ec = uVar36" identifier = identifier) ;) (expression_statement "uStack_e8 = uVar21;" (assignment_expression "uStack_e8 = uVar21" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar40;" (assignment_expression "pcStack_e4 = pcVar40" identifier = identifier) ;) (expression_statement "dStack_e0 = dVar47;" (assignment_expression "dStack_e0 = dVar47" identifier = identifier) ;) (expression_statement "dStack_d8 = param_5;" (assignment_expression "dStack_d8 = param_5" identifier = identifier) ;) (expression_statement "dStack_d0 = dVar46;" (assignment_expression "dStack_d0 = dVar46" identifier = identifier) ;) (if_statement "if (piVar22 == (int *)0x0) goto LAB_000f38b4;" if (parenthesized_expression "(piVar22 == (int *)0x0)" ( (binary_expression "piVar22 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f38b4;" goto statement_identifier ;)) (if_statement "if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" if (parenthesized_expression "(piVar22[0xcdb] != -0x54535255)" ( (binary_expression "piVar22[0xcdb] != -0x54535255" (subscript_expression "piVar22[0xcdb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" { (expression_statement "uVar21 = 0x213;" (assignment_expression "uVar21 = 0x213" identifier = number_literal) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9af4);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9af4)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" * (cast_expression "(code **)(puVar38 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9af4)" ( (binary_expression "puVar38 + 0x2b9af4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" identifier = (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000f38e8;" goto statement_identifier ;) })) (if_statement "if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" if (parenthesized_expression "(piVar22[0xcd4] == 0)" ( (binary_expression "piVar22[0xcd4] == 0" (subscript_expression "piVar22[0xcd4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }" { (expression_statement "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);" (assignment_expression "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0)" identifier = (pointer_expression "*(undefined4 **)(puVar38 + 0x2b93d0)" * (cast_expression "(undefined4 **)(puVar38 + 0x2b93d0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93d0)" ( (binary_expression "puVar38 + 0x2b93d0" identifier + number_literal) ))))) ;) (if_statement "if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }" if (parenthesized_expression "(puVar32 == (undefined *)0x0)" ( (binary_expression "puVar32 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }" { (labeled_statement "LAB_000efed0:\n      puVar32 = (undefined *)*puVar11;" statement_identifier : (expression_statement "puVar32 = (undefined *)*puVar11;" (assignment_expression "puVar32 = (undefined *)*puVar11" identifier = (cast_expression "(undefined *)*puVar11" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;)) })) }) (else_clause "else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" else (compound_statement "{\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" { (expression_statement "(**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);" (call_expression "(**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96cc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b96cc)" * (pointer_expression "*(code **)(puVar38 + 0x2b96cc)" * (cast_expression "(code **)(puVar38 + 0x2b96cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b96cc)" ( (binary_expression "puVar38 + 0x2b96cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0)" ( number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "piVar22 + 0xd0" identifier + number_literal) ))) ;) (if_statement "if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" if (parenthesized_expression "(puVar32 == (undefined *)0x0)" ( (binary_expression "puVar32 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" { (expression_statement "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);" (assignment_expression "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0)" identifier = (pointer_expression "*(undefined4 **)(puVar38 + 0x2b93d0)" * (cast_expression "(undefined4 **)(puVar38 + 0x2b93d0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93d0)" ( (binary_expression "puVar38 + 0x2b93d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000efed0;" goto statement_identifier ;) })) }))) (expression_statement "uVar36 = piVar22[1];" (assignment_expression "uVar36 = piVar22[1]" identifier = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }" { (expression_statement "piVar16 = piVar22 + 0xbc;" (assignment_expression "piVar16 = piVar22 + 0xbc" identifier = (binary_expression "piVar22 + 0xbc" identifier + number_literal)) ;) (expression_statement "auStack_310d[1] = 0;" (assignment_expression "auStack_310d[1] = 0" (subscript_expression "auStack_310d[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar24 = piVar22 + 0xd0;" (assignment_expression "piVar24 = piVar22 + 0xd0" identifier = (binary_expression "piVar22 + 0xd0" identifier + number_literal)) ;) (expression_statement "dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);" (assignment_expression "dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b97e4))(piVar16)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b97e4))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97e4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97e4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97e4)" * (cast_expression "(code **)(puVar38 + 0x2b97e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97e4)" ( (binary_expression "puVar38 + 0x2b97e4" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier ))))) ;) (expression_statement "uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);" (assignment_expression "uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9474))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9474))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9474)" * (pointer_expression "*(code **)(puVar38 + 0x2b9474)" * (cast_expression "(code **)(puVar38 + 0x2b9474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9474)" ( (binary_expression "puVar38 + 0x2b9474" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9b54))(piVar16);" (call_expression "(**(code **)(puVar38 + 0x2b9b54))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b54))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b54)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b54)" * (cast_expression "(code **)(puVar38 + 0x2b9b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b54)" ( (binary_expression "puVar38 + 0x2b9b54" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier ))) ;) (expression_statement "puVar12 = puVar32;" (assignment_expression "puVar12 = puVar32" identifier = identifier) ;) (if_statement "if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" if (parenthesized_expression "((int)((ulonglong)dVar41 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)dVar41 >> 0x20) == 0" (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" { (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9198);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9198)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9198)" * (cast_expression "(code **)(puVar38 + 0x2b9198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9198)" ( (binary_expression "puVar38 + 0x2b9198" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }" if (parenthesized_expression "(*(char *)(piVar22 + 0x4d0) != '\0')" ( (binary_expression "*(char *)(piVar22 + 0x4d0) != '\0'" (pointer_expression "*(char *)(piVar22 + 0x4d0)" * (cast_expression "(char *)(piVar22 + 0x4d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x4d0)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" * (cast_expression "(code **)(puVar38 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b95fc)" ( (binary_expression "puVar38 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(piVar22 + 0x4d0,piVar24)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "piVar22 + 0x4d0" identifier + number_literal) ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9198);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9198)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9198)" * (cast_expression "(code **)(puVar38 + 0x2b9198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9198)" ( (binary_expression "puVar38 + 0x2b9198" identifier + number_literal) ))))) ;) })) (expression_statement "iVar4 = (*pcVar40)(piVar22);" (assignment_expression "iVar4 = (*pcVar40)(piVar22)" identifier = (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22)" ( identifier )))) ;) (expression_statement "iVar5 = piVar22[0x9b];" (assignment_expression "iVar5 = piVar22[0x9b]" identifier = (subscript_expression "piVar22[0x9b]" identifier [ number_literal ])) ;) (if_statement "if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" if (parenthesized_expression "(((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0))" ( (binary_expression "((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)" (parenthesized_expression "((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b995c))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b995c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b995c)" * (pointer_expression "*(code **)(puVar38 + 0x2b995c)" * (cast_expression "(code **)(puVar38 + 0x2b995c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b995c)" ( (binary_expression "puVar38 + 0x2b995c" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }" { (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,piVar24)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" else (compound_statement "{\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" { (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , (binary_expression "piVar22 + 0x8d0" identifier + number_literal) ))) ;) (expression_statement "iVar7 = piVar22[0xcd0];" (assignment_expression "iVar7 = piVar22[0xcd0]" identifier = (subscript_expression "piVar22[0xcd0]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar22[0xcd1];" (assignment_expression "iVar5 = piVar22[0xcd1]" identifier = (subscript_expression "piVar22[0xcd1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (if_statement "if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" if (parenthesized_expression "((iVar7 == 0) && (iVar5 == 0))" ( (binary_expression "(iVar7 == 0) && (iVar5 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }" { (labeled_statement "LAB_000f0044:\n        iVar5 = piVar22[7];" statement_identifier : (expression_statement "iVar5 = piVar22[7];" (assignment_expression "iVar5 = piVar22[7]" identifier = (subscript_expression "piVar22[7]" identifier [ number_literal ])) ;)) }) (else_clause "else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" else (if_statement "if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" if (parenthesized_expression "((iVar7 != iVar6) || (piVar22[7] != iVar5))" ( (binary_expression "(iVar7 != iVar6) || (piVar22[7] != iVar5)" (parenthesized_expression "(iVar7 != iVar6)" ( (binary_expression "iVar7 != iVar6" identifier != identifier) )) || (parenthesized_expression "(piVar22[7] != iVar5)" ( (binary_expression "piVar22[7] != iVar5" (subscript_expression "piVar22[7]" identifier [ number_literal ]) != identifier) ))) )) (compound_statement "{\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" { (expression_statement "dVar41 = (double)iVar7;" (assignment_expression "dVar41 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a94" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000f0044;" goto statement_identifier ;) })))) (expression_statement "dVar41 = (double)iVar6;" (assignment_expression "dVar41 = (double)iVar6" identifier = (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a84" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "iVar6 = piVar22[0x8a];" (assignment_expression "iVar6 = piVar22[0x8a]" identifier = (subscript_expression "piVar22[0x8a]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar22[0x8b];" (assignment_expression "iVar5 = piVar22[0x8b]" identifier = (subscript_expression "piVar22[0x8b]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }" { (expression_statement "iVar7 = piVar22[0x8c];" (assignment_expression "iVar7 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar22[0x8d];" (assignment_expression "iVar8 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (if_statement "if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" if (parenthesized_expression "((iVar5 != 0) || (iVar7 != 0))" ( (binary_expression "(iVar5 != 0) || (iVar7 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f00d4;" goto statement_identifier ;) })) (if_statement "if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f00d4;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" else (compound_statement "{\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" { (expression_statement "iVar7 = piVar22[0x8c];" (assignment_expression "iVar7 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar22[0x8d];" (assignment_expression "iVar8 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)iVar6;" (assignment_expression "dVar41 = (double)iVar6" identifier = (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (labeled_statement "LAB_000f00d4:\n        dVar47 = (double)iVar5;" statement_identifier : (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a74" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) }))) (expression_statement "dVar41 = (double)piVar22[8];" (assignment_expression "dVar41 = (double)piVar22[8]" identifier = (cast_expression "(double)piVar22[8]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(piVar22[8] < 0)" ( (binary_expression "piVar22[8] < 0" (subscript_expression "piVar22[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a58" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (if_statement "if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" if (parenthesized_expression "(piVar22[0xa8] != 0)" ( (binary_expression "piVar22[0xa8] != 0" (subscript_expression "piVar22[0xa8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,uVar21)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , identifier ))) ;) })) (if_statement "if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" if (parenthesized_expression "(uVar36 != 0)" ( (binary_expression "uVar36 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,uVar36)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,uVar21)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "uVar36 = piVar22[0xa0];" (assignment_expression "uVar36 = piVar22[0xa0]" identifier = (subscript_expression "piVar22[0xa0]" identifier [ number_literal ])) ;) (if_statement "if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" if (parenthesized_expression "(*piVar22 == 1)" ( (binary_expression "*piVar22 == 1" (pointer_expression "*piVar22" * identifier) == number_literal) )) (compound_statement "{\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }" { (if_statement "if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }" if (parenthesized_expression "(uVar36 != 0)" ( (binary_expression "uVar36 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" ( number_literal , identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" else (compound_statement "{\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" { (expression_statement "uVar14 = piVar22[9];" (assignment_expression "uVar14 = piVar22[9]" identifier = (subscript_expression "piVar22[9]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)(int)uVar14;" (assignment_expression "dVar41 = (double)(int)uVar14" identifier = (cast_expression "(double)(int)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "((int)uVar14 < 0)" ( (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" if (parenthesized_expression "(uVar14 < uVar36)" ( (binary_expression "uVar14 < uVar36" identifier < identifier) )) (compound_statement "{\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }" { (expression_statement "dVar47 = (double)(int)uVar36;" (assignment_expression "dVar47 = (double)(int)uVar36" identifier = (cast_expression "(double)(int)uVar36" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "((int)uVar36 < 0)" ( (binary_expression "(int)uVar36 < 0" (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a44" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar47 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar47 >> 0x20)" ( (binary_expression "(ulonglong)dVar47 >> 0x20" (cast_expression "(ulonglong)dVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar47,0)" identifier (argument_list "(dVar47,0)" ( identifier , number_literal ))) , identifier ))) ;) }) (else_clause "else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" else (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) }))) }))) (if_statement "if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0xb6) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0xb6) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xb6)" * (cast_expression "(double *)(piVar22 + 0xb6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb6)" ( (binary_expression "piVar22 + 0xb6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }" { (expression_statement "dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);" (assignment_expression "dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" identifier = (binary_expression "*(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (pointer_expression "*(double *)(piVar22 + 0xb6)" * (cast_expression "(double *)(piVar22 + 0xb6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb6)" ( (binary_expression "piVar22 + 0xb6" identifier + number_literal) )))) + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a34" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , (pointer_expression "*(undefined8 *)(piVar22 + 0xb8)" * (cast_expression "(undefined8 *)(piVar22 + 0xb8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb8)" ( (binary_expression "piVar22 + 0xb8" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(piVar22 + 0xba)" * (cast_expression "(undefined8 *)(piVar22 + 0xba)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xba)" ( (binary_expression "piVar22 + 0xba" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }" if (parenthesized_expression "(piVar22[0xaa] != 0 || piVar22[0xab] != 0)" ( (binary_expression "piVar22[0xaa] != 0 || piVar22[0xab] != 0" (binary_expression "piVar22[0xaa] != 0" (subscript_expression "piVar22[0xaa]" identifier [ number_literal ]) != number_literal) || (binary_expression "piVar22[0xab] != 0" (subscript_expression "piVar22[0xab]" identifier [ number_literal ]) != number_literal)) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" ( (subscript_expression "piVar22[0xaa]" identifier [ number_literal ]) , (subscript_expression "piVar22[0xab]" identifier [ number_literal ]) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" ( identifier , (binary_expression "iVar4 + 0x30e8" identifier + number_literal) , (binary_expression "auStack_310d + 1" identifier + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) })) (expression_statement "uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));" (assignment_expression "uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ea4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ea4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ea4)" * (cast_expression "(code **)(puVar38 + 0x2b9ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ea4)" ( (binary_expression "puVar38 + 0x2b9ea4" identifier + number_literal) ))))) )) (argument_list "(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" ( identifier , (pointer_expression "*(undefined8 *)(iVar5 + 0x7ba0)" * (cast_expression "(undefined8 *)(iVar5 + 0x7ba0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))) )))) ;) (expression_statement "dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);" (assignment_expression "dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" * (cast_expression "(code **)(puVar38 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b5c)" ( (binary_expression "puVar38 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(uVar45)" ( identifier ))))) ;) (expression_statement "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);" (assignment_expression "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" * (cast_expression "(code **)(puVar38 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b5c)" ( (binary_expression "puVar38 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(dVar46)" ( identifier ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" identifier = (binary_expression "(dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar46 - dVar47)" ( (binary_expression "dVar46 - dVar47" identifier - identifier) )) * (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar47 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar47 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar36 = (uint)dVar47;\n      }" { (expression_statement "uVar36 = (uint)dVar47;" (assignment_expression "uVar36 = (uint)dVar47" identifier = (cast_expression "(uint)dVar47" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar47 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar47 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar47 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar14 = (uint)dVar41;\n      }" { (expression_statement "uVar14 = (uint)dVar41;" (assignment_expression "uVar14 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);" (assignment_expression "dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier = (binary_expression "dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier / (pointer_expression "*(double *)(iVar5 + 0x7ba0)" * (cast_expression "(double *)(iVar5 + 0x7ba0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))))) ;) (if_statement "if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar46 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar15 = (uint)dVar46;\n      }" { (expression_statement "uVar15 = (uint)dVar46;" (assignment_expression "uVar15 = (uint)dVar46" identifier = (cast_expression "(uint)dVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar46 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a24" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" ( (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar42" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9978);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9978)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9978)" * (cast_expression "(code **)(puVar38 + 0x2b9978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9978)" ( (binary_expression "puVar38 + 0x2b9978" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" else (compound_statement "{\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9c50))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9c50)" * (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) )) (argument_list "(piVar22,0,0,1,1,uVar26)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9500))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9500)" * (pointer_expression "*(code **)(puVar38 + 0x2b9500)" * (cast_expression "(code **)(puVar38 + 0x2b9500)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9500)" ( (binary_expression "puVar38 + 0x2b9500" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier ))) ;) (if_statement "if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iStack_4190 = 0;" (assignment_expression "iStack_4190 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = (int *)0x0;" (assignment_expression "piVar16 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" else (compound_statement "{\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" { (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9100))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9100)" * (pointer_expression "*(code **)(puVar38 + 0x2b9100)" * (cast_expression "(code **)(puVar38 + 0x2b9100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9100)" ( (binary_expression "puVar38 + 0x2b9100" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) (expression_statement "piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);" (assignment_expression "piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" identifier = (cast_expression "(int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93b0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93b0)" * (pointer_expression "*(code **)(puVar38 + 0x2b93b0)" * (cast_expression "(code **)(puVar38 + 0x2b93b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93b0)" ( (binary_expression "puVar38 + 0x2b93b0" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier ))))) ;) (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0;\n          iVar6 = 0;\n        }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" else (compound_statement "{\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" { (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e14))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e14)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e14)" * (cast_expression "(code **)(puVar38 + 0x2b9e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e14)" ( (binary_expression "puVar38 + 0x2b9e14" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);" (assignment_expression "iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9160))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9160)" * (pointer_expression "*(code **)(puVar38 + 0x2b9160)" * (cast_expression "(code **)(puVar38 + 0x2b9160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9160)" ( (binary_expression "puVar38 + 0x2b9160" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) }))) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iStack_4190 = 0;\n        }" { (expression_statement "iStack_4190 = 0;" (assignment_expression "iStack_4190 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" else (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b982c))(iVar8,0,10)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b982c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b982c)" * (pointer_expression "*(code **)(puVar38 + 0x2b982c)" * (cast_expression "(code **)(puVar38 + 0x2b982c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b982c)" ( (binary_expression "puVar38 + 0x2b982c" identifier + number_literal) ))))) )) (argument_list "(iVar8,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);" (assignment_expression "iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92f0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92f0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92f0)" * (cast_expression "(code **)(puVar38 + 0x2b92f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92f0)" ( (binary_expression "puVar38 + 0x2b92f0" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar21,uVar26)" ( identifier , identifier , identifier )))) ;) }))) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69e4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }" if (parenthesized_expression "(*(char *)(piVar22 + 0x4d0) != '\0')" ( (binary_expression "*(char *)(piVar22 + 0x4d0) != '\0'" (pointer_expression "*(char *)(piVar22 + 0x4d0)" * (cast_expression "(char *)(piVar22 + 0x4d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x4d0)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }" { (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" * (cast_expression "(code **)(puVar38 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b95fc)" ( (binary_expression "puVar38 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(piVar22 + 0x4d0,piVar24)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9304))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9304)" * (pointer_expression "*(code **)(puVar38 + 0x2b9304)" * (cast_expression "(code **)(puVar38 + 0x2b9304)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9304)" ( (binary_expression "puVar38 + 0x2b9304" identifier + number_literal) ))))) )) (argument_list "(piVar22 + 0x4d0,4,auStack_110c)" ( (binary_expression "piVar22 + 0x4d0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69cc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) })) (expression_statement "piVar24 = piVar22 + 0x8d0;" (assignment_expression "piVar24 = piVar22 + 0x8d0" identifier = (binary_expression "piVar22 + 0x8d0" identifier + number_literal)) ;) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98f8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98f8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98f8)" * (cast_expression "(code **)(puVar38 + 0x2b98f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98f8)" ( (binary_expression "puVar38 + 0x2b98f8" identifier + number_literal) ))))) )) (argument_list "(piVar24,uVar26)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) (else_clause "else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" else (compound_statement "{\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" { (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b933c))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b933c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b933c)" * (pointer_expression "*(code **)(puVar38 + 0x2b933c)" * (cast_expression "(code **)(puVar38 + 0x2b933c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b933c)" ( (binary_expression "puVar38 + 0x2b933c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) (else_clause "else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" else (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b933c))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b933c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b933c)" * (pointer_expression "*(code **)(puVar38 + 0x2b933c)" * (cast_expression "(code **)(puVar38 + 0x2b933c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b933c)" ( (binary_expression "puVar38 + 0x2b933c" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) }))) (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9994))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9994))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9994)" * (pointer_expression "*(code **)(puVar38 + 0x2b9994)" * (cast_expression "(code **)(puVar38 + 0x2b9994)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9994)" ( (binary_expression "puVar38 + 0x2b9994" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9994))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9994))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9994)" * (pointer_expression "*(code **)(puVar38 + 0x2b9994)" * (cast_expression "(code **)(puVar38 + 0x2b9994)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9994)" ( (binary_expression "puVar38 + 0x2b9994" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69a0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) }))) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(5,*piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(5,*piVar22)" ( number_literal , (pointer_expression "*piVar22" * identifier) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x698c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x697c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)piVar22[0xa6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0xa6]" identifier [ number_literal ])) , (cast_expression "(double)piVar22[0xa7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0xa7]" identifier [ number_literal ])) ))) ;) (expression_statement "iVar9 = piVar22[0xcd0];" (assignment_expression "iVar9 = piVar22[0xcd0]" identifier = (subscript_expression "piVar22[0xcd0]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar22[0xcd1];" (assignment_expression "iVar8 = piVar22[0xcd1]" identifier = (subscript_expression "piVar22[0xcd1]" identifier [ number_literal ])) ;) (if_statement "if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }" if (parenthesized_expression "(((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8))))" ( (binary_expression "((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))" (parenthesized_expression "((iVar9 != 0) || (iVar8 != 0))" ( (binary_expression "(iVar9 != 0) || (iVar8 != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))" ( (parenthesized_expression "(iVar9 != piVar22[6] || (piVar22[7] != iVar8))" ( (binary_expression "iVar9 != piVar22[6] || (piVar22[7] != iVar8)" (binary_expression "iVar9 != piVar22[6]" identifier != (subscript_expression "piVar22[6]" identifier [ number_literal ])) || (parenthesized_expression "(piVar22[7] != iVar8)" ( (binary_expression "piVar22[7] != iVar8" (subscript_expression "piVar22[7]" identifier [ number_literal ]) != identifier) ))) )) ))) )) (compound_statement "{\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }" { (expression_statement "dVar41 = (double)iVar9;" (assignment_expression "dVar41 = (double)iVar9" identifier = (cast_expression "(double)iVar9" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar8;" (assignment_expression "dVar47 = (double)iVar8" identifier = (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6954" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0x86) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x86) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x86)" * (cast_expression "(double *)(piVar22 + 0x86)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x86)" ( (binary_expression "piVar22 + 0x86" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (if_statement "if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }" if (parenthesized_expression "(*(double *)(piVar22 + 0x88) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x88) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x88)" * (cast_expression "(double *)(piVar22 + 0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x88)" ( (binary_expression "piVar22 + 0x88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6934" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x86]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x87]" identifier [ number_literal ]) , (pointer_expression "*(double *)(piVar22 + 0x88)" * (cast_expression "(double *)(piVar22 + 0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x88)" ( (binary_expression "piVar22 + 0x88" identifier + number_literal) )))) ))) ;) (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = dVar47 / *(double *)(piVar22 + 0x88);" (assignment_expression "dVar47 = dVar47 / *(double *)(piVar22 + 0x88)" identifier = (binary_expression "dVar47 / *(double *)(piVar22 + 0x88)" identifier / (pointer_expression "*(double *)(piVar22 + 0x88)" * (cast_expression "(double *)(piVar22 + 0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x88)" ( (binary_expression "piVar22 + 0x88" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x691c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20)" ( (binary_expression "(ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20" (call_expression "(ulonglong)(dVar41 / *(double *)(piVar22 + 0x86))" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(dVar41 / *(double *)(piVar22 + 0x86))" ( (binary_expression "dVar41 / *(double *)(piVar22 + 0x86)" identifier / (pointer_expression "*(double *)(piVar22 + 0x86)" * (cast_expression "(double *)(piVar22 + 0x86)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x86)" ( (binary_expression "piVar22 + 0x86" identifier + number_literal) ))))) ))) >> number_literal) ))) , (call_expression "SUB84(dVar41 / *(double *)(piVar22 + 0x86),0)" identifier (argument_list "(dVar41 / *(double *)(piVar22 + 0x86),0)" ( (binary_expression "dVar41 / *(double *)(piVar22 + 0x86)" identifier / (pointer_expression "*(double *)(piVar22 + 0x86)" * (cast_expression "(double *)(piVar22 + 0x86)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x86)" ( (binary_expression "piVar22 + 0x86" identifier + number_literal) ))))) , number_literal ))) , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar21 = (*pcVar40)(0x41,piVar22[0x80]);" (assignment_expression "uVar21 = (*pcVar40)(0x41,piVar22[0x80])" identifier = (call_expression "(*pcVar40)(0x41,piVar22[0x80])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x41,piVar22[0x80])" ( number_literal , (subscript_expression "piVar22[0x80]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6904" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,uVar36)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68f4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b938c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b938c)" * (pointer_expression "*(code **)(puVar38 + 0x2b938c)" * (cast_expression "(code **)(puVar38 + 0x2b938c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b938c)" ( (binary_expression "puVar38 + 0x2b938c" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49,iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49,iVar8)" ( number_literal , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68e0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }" if (parenthesized_expression "(piVar22[0xa8] != iVar8)" ( (binary_expression "piVar22[0xa8] != iVar8" (subscript_expression "piVar22[0xa8]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68d4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x18,piVar22[0x97])" ( number_literal , (subscript_expression "piVar22[0x97]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }" { (expression_statement "iVar8 = piVar22[8];" (assignment_expression "iVar8 = piVar22[8]" identifier = (subscript_expression "piVar22[8]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" if (parenthesized_expression "(iVar8 == iVar5)" ( (binary_expression "iVar8 == iVar5" identifier == identifier) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) }) (else_clause "else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" else (compound_statement "{\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" { (expression_statement "dVar47 = (double)iVar8;" (assignment_expression "dVar47 = (double)iVar8" identifier = (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6898" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar47 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar47 >> 0x20)" ( (binary_expression "(ulonglong)dVar47 >> 0x20" (cast_expression "(ulonglong)dVar47" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar47,0)" identifier (argument_list "(dVar47,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) }))) })) (if_statement "if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x687c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" if (parenthesized_expression "(uVar36 < 0x22)" ( (binary_expression "uVar36 < 0x22" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" { (expression_statement "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))()" identifier = (call_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))" ( (pointer_expression "*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" * (cast_expression "(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" ( (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c" (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6028" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (if_statement "if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" else (compound_statement "{\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar24 = piVar16;" (assignment_expression "piVar24 = piVar16" identifier = identifier) ;) (do_statement "do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);" do (compound_statement "{\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          }" { (expression_statement "dVar44 = (double)iVar5;" (assignment_expression "dVar44 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar47 = (double)*piVar24;" (assignment_expression "dVar47 = (double)*piVar24" identifier = (cast_expression "(double)*piVar24" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*piVar24" * identifier))) ;) (if_statement "if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }" if (parenthesized_expression "(*piVar24 < 0)" ( (binary_expression "*piVar24 < 0" (pointer_expression "*piVar24" * identifier) < number_literal) )) (compound_statement "{\n              dVar47 = dVar47 + dVar41;\n            }" { (expression_statement "dVar47 = dVar47 + dVar41;" (assignment_expression "dVar47 = dVar47 + dVar41" identifier = (binary_expression "dVar47 + dVar41" identifier + identifier)) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47)" ( identifier , (binary_expression "iVar8 + -0x67ac" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar44 >> 0x20)" ( (binary_expression "(ulonglong)dVar44 >> 0x20" (cast_expression "(ulonglong)dVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar44,0)" identifier (argument_list "(dVar44,0)" ( identifier , number_literal ))) , identifier ))) ;) (expression_statement "piVar24 = piVar24 + 0x1e;" (assignment_expression "piVar24 = piVar24 + 0x1e" identifier = (binary_expression "piVar24 + 0x1e" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < piVar22[0xb0])" ( (binary_expression "iVar5 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" { (expression_statement "dVar41 = (double)piVar16[0x78];" (assignment_expression "dVar41 = (double)piVar16[0x78]" identifier = (cast_expression "(double)piVar16[0x78]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar16[0x78]" identifier [ number_literal ]))) ;) (if_statement "if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(piVar16[0x78] < 0)" ( (binary_expression "piVar16[0x78] < 0" (subscript_expression "piVar16[0x78]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x678c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (if_statement "if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" if (parenthesized_expression "((uint)piVar22[8] < 0x11)" ( (binary_expression "(uint)piVar22[8] < 0x11" (cast_expression "(uint)piVar22[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[8]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }" { (expression_statement "dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));" (assignment_expression "dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" identifier = (cast_expression "(double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" ( (binary_expression "*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" (pointer_expression "*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" * (cast_expression "(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1a50" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))) / (cast_expression "(float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0xffff >> (0x10U - piVar22[8] & 0x1f))" ( (binary_expression "0xffff >> (0x10U - piVar22[8] & 0x1f)" number_literal >> (parenthesized_expression "(0x10U - piVar22[8] & 0x1f)" ( (binary_expression "0x10U - piVar22[8] & 0x1f" (binary_expression "0x10U - piVar22[8]" number_literal - (subscript_expression "piVar22[8]" identifier [ number_literal ])) & number_literal) ))) ))))) )))) ;) }) (else_clause "else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" else (compound_statement "{\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" { (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6774" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar44 = (double)piVar22[6];" (assignment_expression "dVar44 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar43 = (double)piVar22[7];" (assignment_expression "dVar43 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x675c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)(dVar44 * dVar43) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(dVar44 * dVar43) >> 0x20)" ( (binary_expression "(ulonglong)(dVar44 * dVar43) >> 0x20" (call_expression "(ulonglong)(dVar44 * dVar43)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(dVar44 * dVar43)" ( (binary_expression "dVar44 * dVar43" identifier * identifier) ))) >> number_literal) ))) , (call_expression "SUB84(dVar44 * dVar43,0)" identifier (argument_list "(dVar44 * dVar43,0)" ( (binary_expression "dVar44 * dVar43" identifier * identifier) , number_literal ))) ))) ;) (if_statement "if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" if (parenthesized_expression "(uVar36 < 0x22)" ( (binary_expression "uVar36 < 0x22" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" { (expression_statement "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))()" identifier = (call_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))" ( (pointer_expression "*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" * (cast_expression "(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" ( (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c" (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (if_statement "if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" else (compound_statement "{\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "iVar9 = *(int *)(puVar38 + 0x2b8f68);" (assignment_expression "iVar9 = *(int *)(puVar38 + 0x2b8f68)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" * (cast_expression "(int *)(puVar38 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8f68)" ( (binary_expression "puVar38 + 0x2b8f68" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);" do (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar8 + -0x6728)" ( identifier , number_literal , (binary_expression "iVar8 + -0x6728" identifier + number_literal) ))) ;) (expression_statement "dVar47 = dVar44 / dVar41;" (assignment_expression "dVar47 = dVar44 / dVar41" identifier = (binary_expression "dVar44 / dVar41" identifier / identifier)) ;) (expression_statement "iVar28 = iVar5 + 1;" (assignment_expression "iVar28 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);" (call_expression "(*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c)" (parenthesized_expression "(*(code *)(iVar9 + -0x1a60))" ( (pointer_expression "*(code *)(iVar9 + -0x1a60)" * (cast_expression "(code *)(iVar9 + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x1a60)" ( (binary_expression "iVar9 + -0x1a60" identifier + number_literal) )))) )) (argument_list "(puVar32,iVar5,auStack_110c)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = iVar28;" (assignment_expression "iVar5 = iVar28" identifier = identifier) ;) }) while (parenthesized_expression "(iVar28 < piVar22[0xb0])" ( (binary_expression "iVar28 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }" { (expression_statement "dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;" (assignment_expression "dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41" identifier = (binary_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41" (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) (expression_statement "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);" (call_expression "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158)" (parenthesized_expression "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))" ( (pointer_expression "*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" * (cast_expression "(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" ( (binary_expression "*(int *)(puVar38 + 0x2b8f68) + -0x1a60" (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" * (cast_expression "(int *)(puVar38 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8f68)" ( (binary_expression "puVar38 + 0x2b8f68" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }" if (parenthesized_expression "((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3))" ( (binary_expression "(uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)" (parenthesized_expression "(uVar36 != 0x21)" ( (binary_expression "uVar36 != 0x21" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)" ( (comma_expression "iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8f68)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" * (cast_expression "(int *)(puVar38 + 0x2b8f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8f68)" ( (binary_expression "puVar38 + 0x2b8f68" identifier + number_literal) ))))) , (binary_expression "uVar36 != 3" identifier != number_literal)) ))) )) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }" { (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6748" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;" (assignment_expression "dVar47 = *(double *)(iVar8 + 0x1438) / dVar41" identifier = (binary_expression "*(double *)(iVar8 + 0x1438) / dVar41" (pointer_expression "*(double *)(iVar8 + 0x1438)" * (cast_expression "(double *)(iVar8 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1438)" ( (binary_expression "iVar8 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "(*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);" (call_expression "(*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" (parenthesized_expression "(*(code *)(iVar5 + -0x1a60))" ( (pointer_expression "*(code *)(iVar5 + -0x1a60)" * (cast_expression "(code *)(iVar5 + -0x1a60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x1a60)" ( (binary_expression "iVar5 + -0x1a60" identifier + number_literal) )))) )) (argument_list "(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(piVar16);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier ))) ;) })) (if_statement "if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }" { (expression_statement "iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;" (assignment_expression "iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1" identifier = (binary_expression "(1 << (piVar22[8] & 0x1fU)) + -1" (parenthesized_expression "(1 << (piVar22[8] & 0x1fU))" ( (binary_expression "1 << (piVar22[8] & 0x1fU)" number_literal << (parenthesized_expression "(piVar22[8] & 0x1fU)" ( (binary_expression "piVar22[8] & 0x1fU" (subscript_expression "piVar22[8]" identifier [ number_literal ]) & number_literal) ))) )) + number_literal)) ;) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6718" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" if (parenthesized_expression "(uVar36 == 3)" ( (binary_expression "uVar36 == 3" identifier == number_literal) )) (compound_statement "{\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }" { (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }" if (parenthesized_expression "(piVar22[0xaf] != 0)" ( (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000f339c:\n            dVar47 = dVar41;" statement_identifier : (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;)) (expression_statement "FUN_000ef7f8(puVar32,4,iVar5 + 0x158);" (call_expression "FUN_000ef7f8(puVar32,4,iVar5 + 0x158)" identifier (argument_list "(puVar32,4,iVar5 + 0x158)" ( identifier , number_literal , (binary_expression "iVar5 + 0x158" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000f33c0;" goto statement_identifier ;) })) (labeled_statement "LAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" else (compound_statement "{\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" { (if_statement "if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }" if (parenthesized_expression "(uVar36 < 4)" ( (binary_expression "uVar36 < 4" identifier < number_literal) )) (compound_statement "{\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }" { (if_statement "if (uVar36 != 2) goto LAB_000f33e4;" if (parenthesized_expression "(uVar36 != 2)" ( (binary_expression "uVar36 != 2" identifier != number_literal) )) (goto_statement "goto LAB_000f33e4;" goto statement_identifier ;)) (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);" (call_expression "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);" (call_expression "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);" (call_expression "FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164)" identifier (argument_list "(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (piVar22[0xaf] != 0) goto LAB_000f3398;" if (parenthesized_expression "(piVar22[0xaf] != 0)" ( (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000f3398;" goto statement_identifier ;)) (labeled_statement "LAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);" statement_identifier : (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6704" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);" (call_expression "FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" identifier (argument_list "(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (goto_statement "goto LAB_000f1160;" goto statement_identifier ;) })) (if_statement "if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" if (parenthesized_expression "((uVar36 == 0x15) || (uVar36 == 0x17))" ( (binary_expression "(uVar36 == 0x15) || (uVar36 == 0x17)" (parenthesized_expression "(uVar36 == 0x15)" ( (binary_expression "uVar36 == 0x15" identifier == number_literal) )) || (parenthesized_expression "(uVar36 == 0x17)" ( (binary_expression "uVar36 == 0x17" identifier == number_literal) ))) )) (compound_statement "{\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }" { (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);" (call_expression "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (expression_statement "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);" (call_expression "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000f3384:\n            iVar5 = piVar22[0xaf];" statement_identifier : (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;)) }) (else_clause "else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" else (compound_statement "{\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" { (labeled_statement "LAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (if_statement "if (piVar22[0xb0] < 1) goto LAB_000f3384;" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f3384;" goto statement_identifier ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (do_statement "do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);" do (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            }" { (expression_statement "(**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9)" ( identifier , number_literal , (binary_expression "iVar5 + -0x6728" identifier + number_literal) , identifier , (cast_expression "(double)iVar9" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (expression_statement "FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);" (call_expression "FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6)" identifier (argument_list "(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6)" ( identifier , identifier , (binary_expression "iVar8 + 0x6b1c" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < piVar22[0xb0])" ( (binary_expression "iVar9 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" { (labeled_statement "LAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000f339c;" goto statement_identifier ;) })) (labeled_statement "LAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) ;)) (if_statement "if (uVar36 != 3) goto LAB_000f1124;" if (parenthesized_expression "(uVar36 != 3)" ( (binary_expression "uVar36 != 3" identifier != number_literal) )) (goto_statement "goto LAB_000f1124;" goto statement_identifier ;)) }))) (expression_statement "(*pcVar40)(iVar6);" (call_expression "(*pcVar40)(iVar6)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(iVar6)" ( identifier ))) ;) })) (if_statement "if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x66f0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }" if (parenthesized_expression "(0 < *(int *)(iVar7 + 0x90))" ( (binary_expression "0 < *(int *)(iVar7 + 0x90)" number_literal < (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }" { (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = (undefined4 *)(iVar7 + 0x94);" (assignment_expression "puVar11 = (undefined4 *)(iVar7 + 0x94)" identifier = (cast_expression "(undefined4 *)(iVar7 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x94)" ( (binary_expression "iVar7 + 0x94" identifier + number_literal) )))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);" do (compound_statement "{\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,*puVar11)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(9,*puVar11)" ( number_literal , (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x62ac,uVar21)" ( identifier , (binary_expression "iVar6 + -0x62ac" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = *(int *)(iVar7 + 0x90);" (assignment_expression "iVar9 = *(int *)(iVar7 + 0x90)" identifier = (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }" if (parenthesized_expression "(iVar8 < iVar9 + -1)" ( (binary_expression "iVar8 < iVar9 + -1" identifier < (binary_expression "iVar9 + -1" identifier + number_literal)) )) (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + 0x2948)" ( identifier , (binary_expression "iVar5 + 0x2948" identifier + number_literal) ))) ;) (expression_statement "iVar9 = *(int *)(iVar7 + 0x90);" (assignment_expression "iVar9 = *(int *)(iVar7 + 0x90)" identifier = (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < iVar9)" ( (binary_expression "iVar8 < iVar9" identifier < identifier) )) ;) })) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x4bdc)" ( identifier , (binary_expression "iVar5 + -0x4bdc" identifier + number_literal) ))) ;) (if_statement "if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }" if (parenthesized_expression "(0 < piVar22[0xb0])" ( (binary_expression "0 < piVar22[0xb0]" number_literal < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }" { (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (expression_statement "iStack_418c = 0;" (assignment_expression "iStack_418c = 0" identifier = number_literal) ;) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iStack_4180 = 0;" (assignment_expression "iStack_4180 = 0" identifier = number_literal) ;) (expression_statement "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);" do (compound_statement "{\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          }" { (expression_statement "iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);" (assignment_expression "iVar9 = *(int *)(piVar22[0xb4] + iStack_418c)" identifier = (pointer_expression "*(int *)(piVar22[0xb4] + iStack_418c)" * (cast_expression "(int *)(piVar22[0xb4] + iStack_418c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + iStack_418c)" ( (binary_expression "piVar22[0xb4] + iStack_418c" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + identifier) ))))) ;) (if_statement "if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }" if (parenthesized_expression "((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0))" ( (binary_expression "(iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)" (parenthesized_expression "(iVar9 != 5)" ( (binary_expression "iVar9 != 5" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0" (pointer_expression "*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4)" * (cast_expression "(int *)(piVar22[0xb4] + iVar9 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + iVar9 * 0xc + 4)" ( (binary_expression "piVar22[0xb4] + iVar9 * 0xc + 4" (binary_expression "piVar22[0xb4] + iVar9 * 0xc" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + (binary_expression "iVar9 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }" { (expression_statement "dVar43 = (double)iVar9;" (assignment_expression "dVar43 = (double)iVar9" identifier = (cast_expression "(double)iVar9" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n                dVar43 = dVar43 + dVar44;\n              }" { (expression_statement "dVar43 = dVar43 + dVar44;" (assignment_expression "dVar43 = dVar43 + dVar44" identifier = (binary_expression "dVar43 + dVar44" identifier + identifier)) ;) })) (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar28 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar28 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0))" ( identifier , (binary_expression "iVar6 + -0x66d4" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar43 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar43 >> 0x20)" ( (binary_expression "(ulonglong)dVar43 >> 0x20" (cast_expression "(ulonglong)dVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar43,0)" identifier (argument_list "(dVar43,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "iVar29 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar29 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);" (assignment_expression "pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0)" identifier = (cast_expression "(double *)(iVar9 * 0x2b0 + iVar7 + 0xb0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 * 0x2b0 + iVar7 + 0xb0)" ( (binary_expression "iVar9 * 0x2b0 + iVar7 + 0xb0" (binary_expression "iVar9 * 0x2b0 + iVar7" (binary_expression "iVar9 * 0x2b0" identifier * number_literal) + identifier) + number_literal) )))) ;) (do_statement "do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);" do (compound_statement "{\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0))" ( identifier , (binary_expression "iVar28 + -0x66c0" identifier + number_literal) , (cast_expression "(int)((ulonglong)((double)iVar27 + dVar41) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)((double)iVar27 + dVar41) >> 0x20)" ( (binary_expression "(ulonglong)((double)iVar27 + dVar41) >> 0x20" (call_expression "(ulonglong)((double)iVar27 + dVar41)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "((double)iVar27 + dVar41)" ( (binary_expression "(double)iVar27 + dVar41" (cast_expression "(double)iVar27" ( (type_descriptor "double" primitive_type) ) identifier) + identifier) ))) >> number_literal) ))) , (call_expression "SUB84((double)iVar27 + dVar41,0)" identifier (argument_list "((double)iVar27 + dVar41,0)" ( (binary_expression "(double)iVar27 + dVar41" (cast_expression "(double)iVar27" ( (type_descriptor "double" primitive_type) ) identifier) + identifier) , number_literal ))) ))) ;) (if_statement "if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }" if (parenthesized_expression "(0 < *(int *)(iVar7 + 0x90))" ( (binary_expression "0 < *(int *)(iVar7 + 0x90)" number_literal < (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) )) (compound_statement "{\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "pdVar30 = pdStack_4198;" (assignment_expression "pdVar30 = pdStack_4198" identifier = identifier) ;) (do_statement "do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));" do (compound_statement "{\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  }" { (while_statement "while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9e18))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9e18))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e18))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e18)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e18)" * (cast_expression "(code **)(puVar38 + 0x2b9e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e18)" ( (binary_expression "puVar38 + 0x2b9e18" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "dVar47 = *pdVar30;" (assignment_expression "dVar47 = *pdVar30" identifier = (pointer_expression "*pdVar30" * identifier)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar8 + 0x1710,uVar21)" ( identifier , (binary_expression "iVar8 + 0x1710" identifier + number_literal) , identifier ))) ;) (if_statement "if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;" if (parenthesized_expression "(*(int *)(iVar7 + 0x90) + -1 <= iVar9)" ( (binary_expression "*(int *)(iVar7 + 0x90) + -1 <= iVar9" (binary_expression "*(int *)(iVar7 + 0x90) + -1" (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) + number_literal) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pdVar30 = pdVar30 + 9;" (assignment_expression "pdVar30 = pdVar30 + 9" identifier = (binary_expression "pdVar30 + 9" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar29 + 0x2948)" ( identifier , (binary_expression "iVar29 + 0x2948" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;" if (parenthesized_expression "(*(int *)(iVar7 + 0x90) <= iVar9)" ( (binary_expression "*(int *)(iVar7 + 0x90) <= iVar9" (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_000f2c54;" goto statement_identifier ;)) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pdVar30 = pdVar30 + 9;" (assignment_expression "pdVar30 = pdVar30 + 9" identifier = (binary_expression "pdVar30 + 9" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar7 + 0x90))" ( (binary_expression "iVar9 < *(int *)(iVar7 + 0x90)" identifier < (pointer_expression "*(int *)(iVar7 + 0x90)" * (cast_expression "(int *)(iVar7 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_000f2c54:\n                iVar27 = iVar27 + 1;" statement_identifier : (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;)) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x4bdc)" ( identifier , (binary_expression "iVar5 + -0x4bdc" identifier + number_literal) ))) ;) (expression_statement "pdStack_4198 = pdStack_4198 + 1;" (assignment_expression "pdStack_4198 = pdStack_4198 + 1" identifier = (binary_expression "pdStack_4198 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar27 != 7)" ( (binary_expression "iVar27 != 7" identifier != number_literal) )) ;) })) (expression_statement "iStack_4180 = iStack_4180 + 1;" (assignment_expression "iStack_4180 = iStack_4180 + 1" identifier = (binary_expression "iStack_4180 + 1" identifier + number_literal)) ;) (expression_statement "iStack_418c = iStack_418c + 0xc;" (assignment_expression "iStack_418c = iStack_418c + 0xc" identifier = (binary_expression "iStack_418c + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_4180 < piVar22[0xb0])" ( (binary_expression "iStack_4180 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iVar7);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iVar7)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))) ;) })) (if_statement "if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }" if (parenthesized_expression "(iStack_4190 != 0)" ( (binary_expression "iStack_4190 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x66b0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" if (parenthesized_expression "(uVar36 == 3)" ( (binary_expression "uVar36 == 3" identifier == number_literal) )) (compound_statement "{\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }" { (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (labeled_statement "LAB_000f16e0:\n          iVar5 = piVar22[0xaf];" statement_identifier : (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" else (compound_statement "{\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" { (if_statement "if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }" if (parenthesized_expression "(3 < uVar36)" ( (binary_expression "3 < uVar36" number_literal < identifier) )) (compound_statement "{\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }" { (if_statement "if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;" if (parenthesized_expression "((uVar36 != 0x15) && (uVar36 != 0x17))" ( (binary_expression "(uVar36 != 0x15) && (uVar36 != 0x17)" (parenthesized_expression "(uVar36 != 0x15)" ( (binary_expression "uVar36 != 0x15" identifier != number_literal) )) && (parenthesized_expression "(uVar36 != 0x17)" ( (binary_expression "uVar36 != 0x17" identifier != number_literal) ))) )) (goto_statement "goto LAB_000f348c;" goto statement_identifier ;)) (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;) })) (if_statement "if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }" if (parenthesized_expression "(uVar36 == 2)" ( (binary_expression "uVar36 == 2" identifier == number_literal) )) (compound_statement "{\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }" { (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190)" identifier (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190)" identifier (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190)" identifier (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190)" identifier (argument_list "(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;) })) (labeled_statement "LAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;)) (if_statement "if (piVar22[0xb0] < 1) goto LAB_000f16e0;" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f16e0;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);" do (compound_statement "{\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          }" { (expression_statement "dVar47 = (double)iVar6;" (assignment_expression "dVar47 = (double)iVar6" identifier = (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6728)" ( identifier , number_literal , (binary_expression "iVar5 + -0x6728" identifier + number_literal) ))) ;) (expression_statement "FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);" (call_expression "FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47)" identifier (argument_list "(puVar32,iVar6,auStack_110c,iStack_4190,dVar47)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 < piVar22[0xb0])" ( (binary_expression "iVar6 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }" { (expression_statement "FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);" (call_expression "FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47)" identifier (argument_list "(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iStack_4190);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iStack_4190)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iStack_4190)" ( identifier ))) ;) })) (if_statement "if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }" { (if_statement "if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }" if (parenthesized_expression "(uVar36 == 2)" ( (binary_expression "uVar36 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9e18))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9e18))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e18))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e18)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e18)" * (cast_expression "(code **)(puVar38 + 0x2b9e18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e18)" ( (binary_expression "puVar38 + 0x2b9e18" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9508))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9508)" * (pointer_expression "*(code **)(puVar38 + 0x2b9508)" * (cast_expression "(code **)(puVar38 + 0x2b9508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9508)" ( (binary_expression "puVar38 + 0x2b9508" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6660" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (if_statement "if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }" if (parenthesized_expression "((piVar22[0xaf] != 0) && (0 < piVar22[7]))" ( (binary_expression "(piVar22[0xaf] != 0) && (0 < piVar22[7])" (parenthesized_expression "(piVar22[0xaf] != 0)" ( (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(0 < piVar22[7])" ( (binary_expression "0 < piVar22[7]" number_literal < (subscript_expression "piVar22[7]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = piVar22[6];" (assignment_expression "iVar4 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) (while_statement "while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }" while (parenthesized_expression "(iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0)" ( (comma_expression "iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0" (assignment_expression "iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26)" identifier = (call_expression "(*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22,0,iVar5,iVar4,1,uVar26)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }" { (expression_statement "iVar4 = piVar22[6];" (assignment_expression "iVar4 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }" { (do_statement "do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);" do (compound_statement "{\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              }" { (if_statement "if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }" if (parenthesized_expression "((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45))" ( (binary_expression "(*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)" (parenthesized_expression "(*(int *)(piVar22[0xb4] + 0x34) != 0)" ( (binary_expression "*(int *)(piVar22[0xb4] + 0x34) != 0" (pointer_expression "*(int *)(piVar22[0xb4] + 0x34)" * (cast_expression "(int *)(piVar22[0xb4] + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + 0x34)" ( (binary_expression "piVar22[0xb4] + 0x34" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)" ( (binary_expression "*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45" (pointer_expression "*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" ( (binary_expression "iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4" identifier + (binary_expression "*(int *)(piVar22[0xb4] + 0x38) * 4" (pointer_expression "*(int *)(piVar22[0xb4] + 0x38)" * (cast_expression "(int *)(piVar22[0xb4] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22[0xb4] + 0x38)" ( (binary_expression "piVar22[0xb4] + 0x38" (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) )))) == (cast_expression "(float)uVar45" ( (type_descriptor "float" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }" { (expression_statement "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);" (call_expression "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a0)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a0)" * (cast_expression "(code **)(puVar38 + 0x2b97a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a0)" ( (binary_expression "puVar38 + 0x2b97a0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);" (call_expression "(**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94e0)" * (pointer_expression "*(code **)(puVar38 + 0x2b94e0)" * (cast_expression "(code **)(puVar38 + 0x2b94e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94e0)" ( (binary_expression "puVar38 + 0x2b94e0" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "uStack_4158 = *(undefined8 *)(piVar22 + 0x92);" (assignment_expression "uStack_4158 = *(undefined8 *)(piVar22 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar22 + 0x92)" * (cast_expression "(undefined8 *)(piVar22 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x92)" ( (binary_expression "piVar22 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "aiStack_4168[0] = *piVar22;" (assignment_expression "aiStack_4168[0] = *piVar22" (subscript_expression "aiStack_4168[0]" identifier [ number_literal ]) = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "aiStack_4168[1] = piVar22[1];" (assignment_expression "aiStack_4168[1] = piVar22[1]" (subscript_expression "aiStack_4168[1]" identifier [ number_literal ]) = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "iStack_4150 = piVar22[8];" (assignment_expression "iStack_4150 = piVar22[8]" identifier = (subscript_expression "piVar22[8]" identifier [ number_literal ])) ;) (expression_statement "aiStack_4168[2] = piVar22[0xaf];" (assignment_expression "aiStack_4168[2] = piVar22[0xaf]" (subscript_expression "aiStack_4168[2]" identifier [ number_literal ]) = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) (expression_statement "dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);" (assignment_expression "dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1a58" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }" { (expression_statement "iVar4 = piVar22[0xb4];" (assignment_expression "iVar4 = piVar22[0xb4]" identifier = (subscript_expression "piVar22[0xb4]" identifier [ number_literal ])) ;) (expression_statement "dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);" (assignment_expression "dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 8) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 8) * 4" identifier + (binary_expression "*(int *)(iVar4 + 8) * 4" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);" (assignment_expression "dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x14) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x14) * 4" (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);" (assignment_expression "dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x20) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x20) * 4" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }" { (expression_statement "dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);" (assignment_expression "dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x2c) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x2c) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c)" * (cast_expression "(int *)(iVar4 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x34) != 0" (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }" { (expression_statement "aiStack_4168[2] = 4;" (assignment_expression "aiStack_4168[2] = 4" (subscript_expression "aiStack_4168[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);" (assignment_expression "dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x38) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x38) * 4" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x40) != 0" (pointer_expression "*(int *)(iVar4 + 0x40)" * (cast_expression "(int *)(iVar4 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }" { (expression_statement "dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);" (assignment_expression "dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" * (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x44) * 4)" ( (binary_expression "iVar6 + *(int *)(iVar4 + 0x44) * 4" identifier + (binary_expression "*(int *)(iVar4 + 0x44) * 4" (pointer_expression "*(int *)(iVar4 + 0x44)" * (cast_expression "(int *)(iVar4 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x44)" ( (binary_expression "iVar4 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,1,auStack_110c,uVar26)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6640" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b94c0)" * (cast_expression "(code **)(puVar38 + 0x2b94c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94c0)" ( (binary_expression "puVar38 + 0x2b94c0" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,1,auStack_110c)" ( identifier , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6630" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000f1940;" goto statement_identifier ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + piVar22[0xb0] * 4;" (assignment_expression "iVar6 = iVar6 + piVar22[0xb0] * 4" identifier = (binary_expression "iVar6 + piVar22[0xb0] * 4" identifier + (binary_expression "piVar22[0xb0] * 4" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "(iVar4 != iVar7)" ( (binary_expression "iVar4 != iVar7" identifier != identifier) )) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[7] <= iVar5) break;" if (parenthesized_expression "(piVar22[7] <= iVar5)" ( (binary_expression "piVar22[7] <= iVar5" (subscript_expression "piVar22[7]" identifier [ number_literal ]) <= identifier) )) (break_statement "break;" break ;)) })) })) (labeled_statement "LAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);" statement_identifier : (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93f0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93f0)" * (pointer_expression "*(code **)(puVar38 + 0x2b93f0)" * (cast_expression "(code **)(puVar38 + 0x2b93f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f0)" ( (binary_expression "puVar38 + 0x2b93f0" identifier + number_literal) ))))) )) (argument_list "(piVar22,uVar26)" ( identifier , identifier )))) ;)) (if_statement "if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6604" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b928c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b928c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b928c)" * (pointer_expression "*(code **)(puVar38 + 0x2b928c)" * (cast_expression "(code **)(puVar38 + 0x2b928c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b928c)" ( (binary_expression "puVar38 + 0x2b928c" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" * (cast_expression "(code **)(puVar38 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a4)" ( (binary_expression "puVar38 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(piVar22,0,uVar26)" ( identifier , number_literal , identifier )))) ;) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) }) (else_clause "else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" else (compound_statement "{\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" * (cast_expression "(code **)(puVar38 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a4)" ( (binary_expression "puVar38 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(piVar22,0,uVar26)" ( identifier , number_literal , identifier )))) ;) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6614" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" * (cast_expression "(code **)(puVar38 + 0x2b97a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a4)" ( (binary_expression "puVar38 + 0x2b97a4" identifier + number_literal) ))))) )) (argument_list "(piVar22,puVar32,uVar26)" ( identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" if (parenthesized_expression "(*piVar22 == 2)" ( (binary_expression "*piVar22 == 2" (pointer_expression "*piVar22" * identifier) == number_literal) )) (compound_statement "{\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }" { (expression_statement "dVar41 = (double)piVar22[9];" (assignment_expression "dVar41 = (double)piVar22[9]" identifier = (cast_expression "(double)piVar22[9]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[9] < 0)" ( (binary_expression "piVar22[9] < 0" (subscript_expression "piVar22[9]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65ec" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65d0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;" if (parenthesized_expression "(0x400 < (uint)piVar22[9])" ( (binary_expression "0x400 < (uint)piVar22[9]" number_literal < (cast_expression "(uint)piVar22[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[9]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_000f19dc;" goto statement_identifier ;)) (expression_statement "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);" (call_expression "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b97a0)" * (pointer_expression "*(code **)(puVar38 + 0x2b97a0)" * (cast_expression "(code **)(puVar38 + 0x2b97a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b97a0)" ( (binary_expression "puVar38 + 0x2b97a0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168)" ( identifier , identifier ))) ;) (expression_statement "piVar24 = (int *)piVar22[10];" (assignment_expression "piVar24 = (int *)piVar22[10]" identifier = (cast_expression "(int *)piVar22[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[10]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[9] < 1) goto LAB_000f19dc;" if (parenthesized_expression "(piVar22[9] < 1)" ( (binary_expression "piVar22[9] < 1" (subscript_expression "piVar22[9]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f19dc;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804" identifier = (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + 0x2804" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);" do (compound_statement "{\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        }" { (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" identifier = identifier) ;) (expression_statement "piVar2 = aiStack_4168;" (assignment_expression "piVar2 = aiStack_4168" identifier = identifier) ;) (do_statement "do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);" do (compound_statement "{\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          }" { (expression_statement "piVar20 = piVar2;" (assignment_expression "piVar20 = piVar2" identifier = identifier) ;) (expression_statement "piVar18 = piVar16;" (assignment_expression "piVar18 = piVar16" identifier = identifier) ;) (expression_statement "pdStack_4198 = (double *)auStack_210c;" (assignment_expression "pdStack_4198 = (double *)auStack_210c" identifier = (cast_expression "(double *)auStack_210c" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar16 = piVar18 + 4;" (assignment_expression "piVar16 = piVar18 + 4" identifier = (binary_expression "piVar18 + 4" identifier + number_literal)) ;) (expression_statement "iVar29 = piVar18[1];" (assignment_expression "iVar29 = piVar18[1]" identifier = (subscript_expression "piVar18[1]" identifier [ number_literal ])) ;) (expression_statement "iVar28 = piVar18[2];" (assignment_expression "iVar28 = piVar18[2]" identifier = (subscript_expression "piVar18[2]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = piVar18[3];" (assignment_expression "iVar9 = piVar18[3]" identifier = (subscript_expression "piVar18[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar20 = *piVar18;" (assignment_expression "*piVar20 = *piVar18" (pointer_expression "*piVar20" * identifier) = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar20[1] = iVar29;" (assignment_expression "piVar20[1] = iVar29" (subscript_expression "piVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[2] = iVar28;" (assignment_expression "piVar20[2] = iVar28" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[3] = iVar9;" (assignment_expression "piVar20[3] = iVar9" (subscript_expression "piVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar20 + 4;" (assignment_expression "piVar2 = piVar20 + 4" identifier = (binary_expression "piVar20 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 != piVar24 + 0x14)" ( (binary_expression "piVar16 != piVar24 + 0x14" identifier != (binary_expression "piVar24 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar9 = piVar18[5];" (assignment_expression "iVar9 = piVar18[5]" identifier = (subscript_expression "piVar18[5]" identifier [ number_literal ])) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d28);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d28)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" * (cast_expression "(code **)(puVar38 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d28)" ( (binary_expression "puVar38 + 0x2b9d28" identifier + number_literal) ))))) ;) (expression_statement "piVar20[4] = *piVar16;" (assignment_expression "piVar20[4] = *piVar16" (subscript_expression "piVar20[4]" identifier [ number_literal ]) = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "piVar20[5] = iVar9;" (assignment_expression "piVar20[5] = iVar9" (subscript_expression "piVar20[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(auStack_110c,iVar5 + -0xad8,0x1000)" ( identifier , (binary_expression "iVar5 + -0xad8" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,0,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,1,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,2,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (if_statement "if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }" if (parenthesized_expression "(aiStack_4168[1] == 2)" ( (binary_expression "aiStack_4168[1] == 2" (subscript_expression "aiStack_4168[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,3,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d84);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d84)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) ;) (if_statement "if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }" if (parenthesized_expression "(aiStack_4168[2] != 0)" ( (binary_expression "aiStack_4168[2] != 0" (subscript_expression "aiStack_4168[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }" { (expression_statement "(*pcVar40)(auStack_110c,iVar8,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(auStack_110c,iVar8,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" * (cast_expression "(code **)(puVar38 + 0x2b9ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ab8)" ( (binary_expression "puVar38 + 0x2b9ab8" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,4,2,auStack_110c)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d84);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d84)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" * (cast_expression "(code **)(puVar38 + 0x2b9d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d84)" ( (binary_expression "puVar38 + 0x2b9d84" identifier + number_literal) ))))) ;) })) (expression_statement "piVar24 = piVar24 + 0x16;" (assignment_expression "piVar24 = piVar24 + 0x16" identifier = (binary_expression "piVar24 + 0x16" identifier + number_literal)) ;) (expression_statement "(*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(auStack_110c,iVar6 + -0x6e0,0x1000)" ( identifier , (binary_expression "iVar6 + -0x6e0" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,1,auStack_410c,uVar26)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);" (call_expression "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b94c0)" * (cast_expression "(code **)(puVar38 + 0x2b94c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94c0)" ( (binary_expression "puVar38 + 0x2b94c0" identifier + number_literal) ))))) )) (argument_list "(aiStack_4168,1,pdStack_4198)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar9 = iVar4 + 1;" (assignment_expression "iVar9 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c)" ( identifier , (binary_expression "iVar7 + -0x65c0" identifier + number_literal) , (cast_expression "(int)((ulonglong)(double)iVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(double)iVar4 >> 0x20)" ( (binary_expression "(ulonglong)(double)iVar4 >> 0x20" (cast_expression "(ulonglong)(double)iVar4" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) >> number_literal) ))) , (call_expression "SUB84((double)iVar4,0)" identifier (argument_list "((double)iVar4,0)" ( (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier) , number_literal ))) , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = iVar9;" (assignment_expression "iVar4 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 < piVar22[9])" ( (binary_expression "iVar9 < piVar22[9]" identifier < (subscript_expression "piVar22[9]" identifier [ number_literal ])) )) ;) (expression_statement "iVar4 = piVar22[0xb7];" (assignment_expression "iVar4 = piVar22[0xb7]" identifier = (subscript_expression "piVar22[0xb7]" identifier [ number_literal ])) ;) }) (else_clause "else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" else (compound_statement "{\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" { (labeled_statement "LAB_000f19dc:\n        iVar4 = piVar22[0xb7];" statement_identifier : (expression_statement "iVar4 = piVar22[0xb7];" (assignment_expression "iVar4 = piVar22[0xb7]" identifier = (subscript_expression "piVar22[0xb7]" identifier [ number_literal ])) ;)) }))) (expression_statement "pdStack_4198 = (double *)auStack_210c;" (assignment_expression "pdStack_4198 = (double *)auStack_210c" identifier = (cast_expression "(double *)auStack_210c" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }" if (parenthesized_expression "((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0)" ( (binary_expression "(double)CONCAT44(piVar22[0xb6],iVar4) != 0.0" (cast_expression "(double)CONCAT44(piVar22[0xb6],iVar4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(piVar22[0xb6],iVar4)" identifier (argument_list "(piVar22[0xb6],iVar4)" ( (subscript_expression "piVar22[0xb6]" identifier [ number_literal ]) , identifier )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0xb8) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0xb8) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xb8)" * (cast_expression "(double *)(piVar22 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xb8)" ( (binary_expression "piVar22 + 0xb8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -26000" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 0xba) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0xba) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xba)" * (cast_expression "(double *)(piVar22 + 0xba)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0xba)" ( (binary_expression "piVar22 + 0xba" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6570" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);" (assignment_expression "uVar21 = (*pcVar40)(0x23,piVar22[0x7e])" identifier = (call_expression "(*pcVar40)(0x23,piVar22[0x7e])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x23,piVar22[0x7e])" ( number_literal , (subscript_expression "piVar22[0x7e]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6550" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }" if (parenthesized_expression "(*(double *)(piVar22 + 100) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 100) != 0.0" (pointer_expression "*(double *)(piVar22 + 100)" * (cast_expression "(double *)(piVar22 + 100)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 100)" ( (binary_expression "piVar22 + 100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6538" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }" if (parenthesized_expression "((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0))" ( (binary_expression "(((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)" (parenthesized_expression "(((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0))" ( (binary_expression "((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)" (parenthesized_expression "((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0))" ( (binary_expression "(*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)" (parenthesized_expression "(*(double *)(piVar22 + 0x66) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x66) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x66)" * (cast_expression "(double *)(piVar22 + 0x66)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x66)" ( (binary_expression "piVar22 + 0x66" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(double *)(piVar22 + 0x6c) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x6c) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x6c)" * (cast_expression "(double *)(piVar22 + 0x6c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x6c)" ( (binary_expression "piVar22 + 0x6c" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(*(double *)(piVar22 + 0x72) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x72) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x72)" * (cast_expression "(double *)(piVar22 + 0x72)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x72)" ( (binary_expression "piVar22 + 0x72" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(*(double *)(piVar22 + 0x78) != 0.0)" ( (binary_expression "*(double *)(piVar22 + 0x78) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x78)" * (cast_expression "(double *)(piVar22 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x78)" ( (binary_expression "piVar22 + 0x78" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6528" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6514" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x66]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x67]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x68)" * (cast_expression "(undefined8 *)(piVar22 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x68)" ( (binary_expression "piVar22 + 0x68" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x6c]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x6d]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x6e)" * (cast_expression "(undefined8 *)(piVar22 + 0x6e)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x6e)" ( (binary_expression "piVar22 + 0x6e" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64dc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x72]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x73]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x74)" * (cast_expression "(undefined8 *)(piVar22 + 0x74)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x74)" ( (binary_expression "piVar22 + 0x74" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (subscript_expression "piVar22[0x78]" identifier [ number_literal ]) , (subscript_expression "piVar22[0x79]" identifier [ number_literal ]) , (pointer_expression "*(undefined8 *)(piVar22 + 0x7a)" * (cast_expression "(undefined8 *)(piVar22 + 0x7a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar22 + 0x7a)" ( (binary_expression "piVar22 + 0x7a" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar5 = piVar22[0x8e];" (assignment_expression "iVar5 = piVar22[0x8e]" identifier = (subscript_expression "piVar22[0x8e]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar22[0x8f];" (assignment_expression "iVar4 = piVar22[0x8f]" identifier = (subscript_expression "piVar22[0x8f]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }" if (parenthesized_expression "(iVar5 * iVar4 != 0)" ( (binary_expression "iVar5 * iVar4 != 0" (binary_expression "iVar5 * iVar4" identifier * identifier) != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }" { (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar4;" (assignment_expression "dVar47 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64a4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)piVar22[0x90]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x90]" identifier [ number_literal ])) , (cast_expression "(double)piVar22[0x91]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x91]" identifier [ number_literal ])) ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0xcdc" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6478" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0x22" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6464" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0x38" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x644c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" * (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" * (cast_expression "(code **)(puVar38 + 0x2b92c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92c0)" ( (binary_expression "puVar38 + 0x2b92c0" identifier + number_literal) ))))) )) (argument_list "(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26)" ( identifier , (binary_expression "piVar22 + 0x4e" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6438" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x24,piVar22[0x96])" ( number_literal , (subscript_expression "piVar22[0x96]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x641c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x38,piVar22[0x95])" ( number_literal , (subscript_expression "piVar22[0x95]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6408" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0xd,piVar22[0x99])" ( number_literal , (subscript_expression "piVar22[0x99]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63f4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar5 = piVar22[0x8a];" (assignment_expression "iVar5 = piVar22[0x8a]" identifier = (subscript_expression "piVar22[0x8a]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar22[0x8b];" (assignment_expression "iVar4 = piVar22[0x8b]" identifier = (subscript_expression "piVar22[0x8b]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (expression_statement "iVar6 = piVar22[0x8c];" (assignment_expression "iVar6 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar22[0x8d];" (assignment_expression "iVar7 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (if_statement "if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }" if (parenthesized_expression "((iVar4 != 0) || (iVar6 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar6 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000f29c0;" goto statement_identifier ;) })) (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) goto LAB_000f29c0;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f29c0;" goto statement_identifier ;)) (labeled_statement "LAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" else (compound_statement "{\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" { (expression_statement "iVar6 = piVar22[0x8c];" (assignment_expression "iVar6 = piVar22[0x8c]" identifier = (subscript_expression "piVar22[0x8c]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar22[0x8d];" (assignment_expression "iVar7 = piVar22[0x8d]" identifier = (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (labeled_statement "LAB_000f29c0:\n        dVar47 = (double)iVar4;" statement_identifier : (expression_statement "dVar47 = (double)iVar4;" (assignment_expression "dVar47 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63e4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier , (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (if_statement "if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }" if (parenthesized_expression "((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))" ( (binary_expression "(piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0)" (parenthesized_expression "(piVar22[0x8c] != 0)" ( (binary_expression "piVar22[0x8c] != 0" (subscript_expression "piVar22[0x8c]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0)" ( (comma_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) , (binary_expression "piVar22[0x8d] != 0" (subscript_expression "piVar22[0x8d]" identifier [ number_literal ]) != number_literal)) ))) )) (compound_statement "{\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }" { (expression_statement "dVar41 = (double)piVar22[0x8c];" (assignment_expression "dVar41 = (double)piVar22[0x8c]" identifier = (cast_expression "(double)piVar22[0x8c]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x8c]" identifier [ number_literal ]))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63b8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , (cast_expression "(double)piVar22[0x8d]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x8d]" identifier [ number_literal ])) ))) ;) (goto_statement "goto LAB_000f1db8;" goto statement_identifier ;) })) }))) (expression_statement "uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);" (assignment_expression "uVar21 = (*pcVar40)(0x15,piVar22[0x9a])" identifier = (call_expression "(*pcVar40)(0x15,piVar22[0x9a])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x15,piVar22[0x9a])" ( number_literal , (subscript_expression "piVar22[0x9a]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6394" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar4 = piVar22[0x9c];" (assignment_expression "iVar4 = piVar22[0x9c]" identifier = (subscript_expression "piVar22[0x9c]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e])" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6384" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , (cast_expression "(double)piVar22[0x9e]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[0x9e]" identifier [ number_literal ])) ))) ;) })) (expression_statement "iVar4 = piVar22[0x9f];" (assignment_expression "iVar4 = piVar22[0x9f]" identifier = (subscript_expression "piVar22[0x9f]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x636c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "iVar4 = piVar22[0x9d];" (assignment_expression "iVar4 = piVar22[0x9d]" identifier = (subscript_expression "piVar22[0x9d]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6354" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "iVar4 = piVar22[0x9b];" (assignment_expression "iVar4 = piVar22[0x9b]" identifier = (subscript_expression "piVar22[0x9b]" identifier [ number_literal ])) ;) (if_statement "if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" if (parenthesized_expression "(piVar22[0xcda] == 0)" ( (binary_expression "piVar22[0xcda] == 0" (subscript_expression "piVar22[0xcda]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }" { (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9764);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9764)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9764)" * (cast_expression "(code **)(puVar38 + 0x2b9764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9764)" ( (binary_expression "puVar38 + 0x2b9764" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xcd9] != 0) goto LAB_000f1e64;" if (parenthesized_expression "(piVar22[0xcd9] != 0)" ( (binary_expression "piVar22[0xcd9] != 0" (subscript_expression "piVar22[0xcd9]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000f1e64;" goto statement_identifier ;)) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6324" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) (goto_statement "goto LAB_000f1ed4;" goto statement_identifier ;) })) }) (else_clause "else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" else (compound_statement "{\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" { (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9764);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9764)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9764)" * (cast_expression "(code **)(puVar38 + 0x2b9764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9764)" ( (binary_expression "puVar38 + 0x2b9764" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);" statement_identifier : (expression_statement "iVar5 = (*pcVar40)(piVar22);" (assignment_expression "iVar5 = (*pcVar40)(piVar22)" identifier = (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22)" ( identifier )))) ;)) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" identifier = (cast_expression "(double)iVar5" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6340" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) , identifier ))) ;) (labeled_statement "LAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);" statement_identifier : (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar21 = (*pcVar40)(0xe,piVar22[2]);" (assignment_expression "uVar21 = (*pcVar40)(0xe,piVar22[2])" identifier = (call_expression "(*pcVar40)(0xe,piVar22[2])" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0xe,piVar22[2])" ( number_literal , (subscript_expression "piVar22[2]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6314" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar4 = piVar22[3];" (assignment_expression "iVar4 = piVar22[3]" identifier = (subscript_expression "piVar22[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" { (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6300" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal ))) ))) ;) })) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(0x36,piVar22[4])" ( number_literal , (subscript_expression "piVar22[4]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ec" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }" if (parenthesized_expression "(piVar22[0x81] != 0)" ( (binary_expression "piVar22[0x81] != 0" (subscript_expression "piVar22[0x81]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62d8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) })) (if_statement "if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }" if (parenthesized_expression "(piVar22[0x82] != 0)" ( (binary_expression "piVar22[0x82] != 0" (subscript_expression "piVar22[0x82]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }" { (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b96bc))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b96bc))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b96bc))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96bc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b96bc)" * (pointer_expression "*(code **)(puVar38 + 0x2b96bc)" * (cast_expression "(code **)(puVar38 + 0x2b96bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b96bc)" ( (binary_expression "puVar38 + 0x2b96bc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);" (call_expression "(**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9974))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9974)" * (pointer_expression "*(code **)(puVar38 + 0x2b9974)" * (cast_expression "(code **)(puVar38 + 0x2b9974)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9974)" ( (binary_expression "puVar38 + 0x2b9974" identifier + number_literal) ))))) )) (argument_list "(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62c8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar25 = (char *)piVar22[0x82];" (assignment_expression "pcVar25 = (char *)piVar22[0x82]" identifier = (cast_expression "(char *)piVar22[0x82]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[0x82]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = (int)*pcVar25;" (assignment_expression "iVar5 = (int)*pcVar25" identifier = (cast_expression "(int)*pcVar25" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar25" * identifier))) ;) (if_statement "if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }" { (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar9 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" identifier = identifier) ;) (do_statement "do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);" do (compound_statement "{\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          }" { (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;) (expression_statement "pcVar37 = pcVar25;" (assignment_expression "pcVar37 = pcVar25" identifier = identifier) ;) (if_statement "if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }" if (parenthesized_expression "(1 < (iVar5 + 1U & 0xff))" ( (binary_expression "1 < (iVar5 + 1U & 0xff)" number_literal < (parenthesized_expression "(iVar5 + 1U & 0xff)" ( (binary_expression "iVar5 + 1U & 0xff" (binary_expression "iVar5 + 1U" identifier + number_literal) & number_literal) ))) )) (compound_statement "{\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }" { (do_statement "do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);" do (compound_statement "{\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              }" { (expression_statement "pcVar37 = pcVar37 + 1;" (assignment_expression "pcVar37 = pcVar37 + 1" identifier = (binary_expression "pcVar37 + 1" identifier + number_literal)) ;) (if_statement "if ((byte)(*pcVar37 + 1U) < 2) break;" if (parenthesized_expression "((byte)(*pcVar37 + 1U) < 2)" ( (binary_expression "(byte)(*pcVar37 + 1U) < 2" (call_expression "(byte)(*pcVar37 + 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar37 + 1U)" ( (binary_expression "*pcVar37 + 1U" (pointer_expression "*pcVar37" * identifier) + number_literal) ))) < number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((uint)((int)pcVar37 - (int)pcVar25) < 0x1000)" ( (binary_expression "(uint)((int)pcVar37 - (int)pcVar25) < 0x1000" (call_expression "(uint)((int)pcVar37 - (int)pcVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar37 - (int)pcVar25)" ( (binary_expression "(int)pcVar37 - (int)pcVar25" (cast_expression "(int)pcVar37" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) ;) (expression_statement "iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;" (assignment_expression "iVar28 = ((int)pcVar37 - (int)pcVar25) + 1" identifier = (binary_expression "((int)pcVar37 - (int)pcVar25) + 1" (parenthesized_expression "((int)pcVar37 - (int)pcVar25)" ( (binary_expression "(int)pcVar37 - (int)pcVar25" (cast_expression "(int)pcVar37" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d28))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d28)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" * (cast_expression "(code **)(puVar38 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d28)" ( (binary_expression "puVar38 + 0x2b9d28" identifier + number_literal) ))))) )) (argument_list "(iVar4 + 0x2210,pcVar25,iVar28)" ( (binary_expression "iVar4 + 0x2210" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210)" ( identifier , (binary_expression "iVar6 + -0x62b0" identifier + number_literal) , (binary_expression "iVar4 + 0x2210" identifier + number_literal) ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9a90))(0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a90))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a90)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a90)" * (cast_expression "(code **)(puVar38 + 0x2b9a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a90)" ( (binary_expression "puVar38 + 0x2b9a90" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9400))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9400)" * (pointer_expression "*(code **)(puVar38 + 0x2b9400)" * (cast_expression "(code **)(puVar38 + 0x2b9400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9400)" ( (binary_expression "puVar38 + 0x2b9400" identifier + number_literal) ))))) )) (argument_list "(iVar4,uVar26)" ( identifier , identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a90))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a90))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a90))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a90)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a90)" * (cast_expression "(code **)(puVar38 + 0x2b9a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a90)" ( (binary_expression "puVar38 + 0x2b9a90" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier ))) ;) (if_statement "if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" else (compound_statement "{\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" { (expression_statement "dVar44 = (double)*(int *)(iVar5 + 0x3340);" (assignment_expression "dVar44 = (double)*(int *)(iVar5 + 0x3340)" identifier = (cast_expression "(double)*(int *)(iVar5 + 0x3340)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar5 + 0x3340)" * (cast_expression "(int *)(iVar5 + 0x3340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3340)" ( (binary_expression "iVar5 + 0x3340" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }" if (parenthesized_expression "(*(int *)(iVar5 + 0x3340) < 0)" ( (binary_expression "*(int *)(iVar5 + 0x3340) < 0" (pointer_expression "*(int *)(iVar5 + 0x3340)" * (cast_expression "(int *)(iVar5 + 0x3340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3340)" ( (binary_expression "iVar5 + 0x3340" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                dVar44 = dVar44 + dVar47;\n              }" { (expression_statement "dVar44 = dVar44 + dVar47;" (assignment_expression "dVar44 = dVar44 + dVar47" identifier = (binary_expression "dVar44 + dVar47" identifier + identifier)) ;) })) (expression_statement "dVar43 = (double)*(int *)(iVar5 + 0x3344);" (assignment_expression "dVar43 = (double)*(int *)(iVar5 + 0x3344)" identifier = (cast_expression "(double)*(int *)(iVar5 + 0x3344)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar5 + 0x3344)" * (cast_expression "(int *)(iVar5 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3344)" ( (binary_expression "iVar5 + 0x3344" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }" if (parenthesized_expression "(*(int *)(iVar5 + 0x3344) < 0)" ( (binary_expression "*(int *)(iVar5 + 0x3344) < 0" (pointer_expression "*(int *)(iVar5 + 0x3344)" * (cast_expression "(int *)(iVar5 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3344)" ( (binary_expression "iVar5 + 0x3344" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                dVar43 = dVar43 + dVar41;\n              }" { (expression_statement "dVar43 = dVar43 + dVar41;" (assignment_expression "dVar43 = dVar43 + dVar41" identifier = (binary_expression "dVar43 + dVar41" identifier + identifier)) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340)" ( identifier , (binary_expression "iVar7 + -0x62a8" identifier + number_literal) , (cast_expression "(int)((ulonglong)dVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar44 >> 0x20)" ( (binary_expression "(ulonglong)dVar44 >> 0x20" (cast_expression "(ulonglong)dVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar44,0)" identifier (argument_list "(dVar44,0)" ( identifier , number_literal ))) , identifier , (binary_expression "iVar5 + 0x2340" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9500))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9500)" * (pointer_expression "*(code **)(puVar38 + 0x2b9500)" * (cast_expression "(code **)(puVar38 + 0x2b9500)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9500)" ( (binary_expression "puVar38 + 0x2b9500" identifier + number_literal) ))))) )) (argument_list "(iVar5,uVar26)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9180))(iVar5);" (call_expression "(**(code **)(puVar38 + 0x2b9180))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9180))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9180)" * (pointer_expression "*(code **)(puVar38 + 0x2b9180)" * (cast_expression "(code **)(puVar38 + 0x2b9180)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9180)" ( (binary_expression "puVar38 + 0x2b9180" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (while_statement "while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }" while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar8 + -0x6294,iVar28)" ( identifier , (binary_expression "iVar8 + -0x6294" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" * (cast_expression "(code **)(puVar38 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98e8)" ( (binary_expression "puVar38 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar28,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar9 + -0x18b8,iVar28)" ( identifier , (binary_expression "iVar9 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9438))(iVar5);" (call_expression "(**(code **)(puVar38 + 0x2b9438))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9438))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9438)" * (pointer_expression "*(code **)(puVar38 + 0x2b9438)" * (cast_expression "(code **)(puVar38 + 0x2b9438)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9438)" ( (binary_expression "puVar38 + 0x2b9438" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) (expression_statement "iVar5 = (int)pcVar37[1];" (assignment_expression "iVar5 = (int)pcVar37[1]" identifier = (cast_expression "(int)pcVar37[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar37[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar25 = pcVar37 + 1;" (assignment_expression "pcVar25 = pcVar37 + 1" identifier = (binary_expression "pcVar37 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9ad4))(iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9ad4))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ad4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ad4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ad4)" * (cast_expression "(code **)(puVar38 + 0x2b9ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ad4)" ( (binary_expression "puVar38 + 0x2b9ad4" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x628c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" * (cast_expression "(code **)(puVar38 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98e8)" ( (binary_expression "puVar38 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(piVar22,pdStack_4198,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6278" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9824))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9824))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9824)" * (pointer_expression "*(code **)(puVar38 + 0x2b9824)" * (cast_expression "(code **)(puVar38 + 0x2b9824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9824)" ( (binary_expression "puVar38 + 0x2b9824" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }" if (parenthesized_expression "(0x50 < uVar36)" ( (binary_expression "0x50 < uVar36" number_literal < identifier) )) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b94e8)" * (cast_expression "(code **)(puVar38 + 0x2b94e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94e8)" ( (binary_expression "puVar38 + 0x2b94e8" identifier + number_literal) ))))) )) (argument_list "(10,puVar32)" ( number_literal , identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);" (assignment_expression "puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" identifier = (cast_expression "(undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9da0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9da0)" * (pointer_expression "*(code **)(puVar38 + 0x2b9da0)" * (cast_expression "(code **)(puVar38 + 0x2b9da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9da0)" ( (binary_expression "puVar38 + 0x2b9da0" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,uVar26)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" if (parenthesized_expression "(puVar13 != (undefined8 *)0x0)" ( (binary_expression "puVar13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" { (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d00))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d00)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d00)" * (cast_expression "(code **)(puVar38 + 0x2b9d00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d00)" ( (binary_expression "puVar38 + 0x2b9d00" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }" if (parenthesized_expression "(0 < aiStack_4168[0])" ( (binary_expression "0 < aiStack_4168[0]" number_literal < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar39 = puVar13;" (assignment_expression "puVar39 = puVar13" identifier = identifier) ;) (do_statement "do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);" do (compound_statement "{\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);" (call_expression "(**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1])" ( identifier , number_literal , (binary_expression "iVar5 + -0x6264" identifier + number_literal) , identifier , (pointer_expression "*puVar39" * identifier) , (subscript_expression "puVar39[1]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9894))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9894)" * (pointer_expression "*(code **)(puVar38 + 0x2b9894)" * (cast_expression "(code **)(puVar38 + 0x2b9894)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9894)" ( (binary_expression "puVar38 + 0x2b9894" identifier + number_literal) ))))) )) (argument_list "(&uStack_416c,auStack_110c)" ( (pointer_expression "&uStack_416c" & identifier) , identifier ))) ;) (expression_statement "puVar39 = puVar39 + 2;" (assignment_expression "puVar39 = puVar39 + 2" identifier = (binary_expression "puVar39 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 < aiStack_4168[0])" ( (binary_expression "iVar4 < aiStack_4168[0]" identifier < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(puVar13);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(puVar13)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x625c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uStack_416c)" ( identifier )))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b91ec))" ( (pointer_expression "**(code **)(puVar38 + 0x2b91ec)" * (pointer_expression "*(code **)(puVar38 + 0x2b91ec)" * (cast_expression "(code **)(puVar38 + 0x2b91ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b91ec)" ( (binary_expression "puVar38 + 0x2b91ec" identifier + number_literal) ))))) )) (argument_list "(piVar22,aiStack_4168,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" { (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d00))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d00)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d00)" * (cast_expression "(code **)(puVar38 + 0x2b9d00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d00)" ( (binary_expression "puVar38 + 0x2b9d00" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }" if (parenthesized_expression "(0 < aiStack_4168[0])" ( (binary_expression "0 < aiStack_4168[0]" number_literal < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);" do (compound_statement "{\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9268)" * (pointer_expression "*(code **)(puVar38 + 0x2b9268)" * (cast_expression "(code **)(puVar38 + 0x2b9268)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9268)" ( (binary_expression "puVar38 + 0x2b9268" identifier + number_literal) ))))) )) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6264)" ( identifier , number_literal , (binary_expression "iVar5 + -0x6264" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9894))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9894)" * (pointer_expression "*(code **)(puVar38 + 0x2b9894)" * (cast_expression "(code **)(puVar38 + 0x2b9894)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9894)" ( (binary_expression "puVar38 + 0x2b9894" identifier + number_literal) ))))) )) (argument_list "(&uStack_416c,auStack_110c)" ( (pointer_expression "&uStack_416c" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(iVar6 < aiStack_4168[0])" ( (binary_expression "iVar6 < aiStack_4168[0]" identifier < (subscript_expression "aiStack_4168[0]" identifier [ number_literal ])) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x624c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uStack_416c)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9378))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b9378))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9378))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9378)" * (pointer_expression "*(code **)(puVar38 + 0x2b9378)" * (cast_expression "(code **)(puVar38 + 0x2b9378)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9378)" ( (binary_expression "puVar38 + 0x2b9378" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b93f8))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93f8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93f8)" * (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" * (cast_expression "(code **)(puVar38 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f8)" ( (binary_expression "puVar38 + 0x2b93f8" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }" { (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6230" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (do_statement "do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);" do (compound_statement "{\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        }" { (do_statement "do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);" do (compound_statement "{\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          }" { (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98c4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98c4)" * (pointer_expression "*(code **)(puVar38 + 0x2b98c4)" * (cast_expression "(code **)(puVar38 + 0x2b98c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98c4)" ( (binary_expression "puVar38 + 0x2b98c4" identifier + number_literal) ))))) )) (argument_list "(piVar22,iVar4)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9234))(iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9234))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9234))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9234)" * (pointer_expression "*(code **)(puVar38 + 0x2b9234)" * (cast_expression "(code **)(puVar38 + 0x2b9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9234)" ( (binary_expression "puVar38 + 0x2b9234" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x6220,iVar4)" ( identifier , (binary_expression "iVar5 + -0x6220" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" * (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" * (cast_expression "(code **)(puVar38 + 0x2b95fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b95fc)" ( (binary_expression "puVar38 + 0x2b95fc" identifier + number_literal) ))))) )) (argument_list "(iVar4,iVar6 + -0x1918)" ( identifier , (binary_expression "iVar6 + -0x1918" identifier + number_literal) )))) ;) (if_statement "if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }" { (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9234))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9234))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9234)" * (pointer_expression "*(code **)(puVar38 + 0x2b9234)" * (cast_expression "(code **)(puVar38 + 0x2b9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9234)" ( (binary_expression "puVar38 + 0x2b9234" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }" if (parenthesized_expression "(0 < iVar28 + -5)" ( (binary_expression "0 < iVar28 + -5" number_literal < (binary_expression "iVar28 + -5" identifier + number_literal)) )) (compound_statement "{\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }" { (expression_statement "iVar27 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar27 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);" do (compound_statement "{\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              }" { (expression_statement "iVar35 = iVar29 + 1;" (assignment_expression "iVar35 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }" if (parenthesized_expression "(*(char *)(iVar17 + iVar29) == '\x1c')" ( (binary_expression "*(char *)(iVar17 + iVar29) == '\x1c'" (pointer_expression "*(char *)(iVar17 + iVar29)" * (cast_expression "(char *)(iVar17 + iVar29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29)" ( (binary_expression "iVar17 + iVar29" identifier + identifier) )))) == (char_literal "'\x1c'" ' escape_sequence ')) )) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }" { (expression_statement "(**(code **)(puVar38 + 0x2b9354))(iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);" (assignment_expression "uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5)" identifier = (call_expression "(uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(*(char *)(iVar17 + iVar29 + 2) - 5)" ( (binary_expression "*(char *)(iVar17 + iVar29 + 2) - 5" (pointer_expression "*(char *)(iVar17 + iVar29 + 2)" * (cast_expression "(char *)(iVar17 + iVar29 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29 + 2)" ( (binary_expression "iVar17 + iVar29 + 2" (binary_expression "iVar17 + iVar29" identifier + identifier) + number_literal) )))) - number_literal) )))) ;) (if_statement "if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }" if (parenthesized_expression "(uVar36 < 0xd7)" ( (binary_expression "uVar36 < 0xd7" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }" { (expression_statement "uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();" (assignment_expression "uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )()" identifier = (call_expression "(*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )()" (parenthesized_expression "(*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )" ( (pointer_expression "*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" * (cast_expression "(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" ( (binary_expression "puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c" (binary_expression "puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(iVar8 + -0x5f18 + uVar36 * 4)" * (cast_expression "(int *)(iVar8 + -0x5f18 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x5f18 + uVar36 * 4)" ( (binary_expression "iVar8 + -0x5f18 + uVar36 * 4" (binary_expression "iVar8 + -0x5f18" identifier + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (expression_statement "iVar35 = iVar29 + 5;" (assignment_expression "iVar35 = iVar29 + 5" identifier = (binary_expression "iVar29 + 5" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68)" ( identifier , (binary_expression "iVar27 + -0x6200" identifier + number_literal) , (binary_expression "iVar7 + -0x1c68" identifier + number_literal) ))) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);" (assignment_expression "uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3)" identifier = (pointer_expression "*(undefined1 *)(iVar17 + iVar29 + 3)" * (cast_expression "(undefined1 *)(iVar17 + iVar29 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29 + 3)" ( (binary_expression "iVar17 + iVar29 + 3" (binary_expression "iVar17 + iVar29" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));" (assignment_expression "uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" identifier = (cast_expression "(uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" identifier (argument_list "(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" ( identifier , (pointer_expression "*(undefined1 *)(iVar17 + iVar29 + 4)" * (cast_expression "(undefined1 *)(iVar17 + iVar29 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar29 + 4)" ( (binary_expression "iVar17 + iVar29 + 4" (binary_expression "iVar17 + iVar29" identifier + identifier) + number_literal) )))) ))))) ;) (if_statement "if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }" if (parenthesized_expression "((uint)(iVar28 - iVar35) <= uVar36)" ( (binary_expression "(uint)(iVar28 - iVar35) <= uVar36" (call_expression "(uint)(iVar28 - iVar35)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar28 - iVar35)" ( (binary_expression "iVar28 - iVar35" identifier - identifier) ))) <= identifier) )) (compound_statement "{\n                    uVar36 = iVar28 - iVar35;\n                  }" { (expression_statement "uVar36 = iVar28 - iVar35;" (assignment_expression "uVar36 = iVar28 - iVar35" identifier = (binary_expression "iVar28 - iVar35" identifier - identifier)) ;) })) (expression_statement "iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);" (assignment_expression "iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99f8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99f8)" * (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" * (cast_expression "(code **)(puVar38 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99f8)" ( (binary_expression "puVar38 + 0x2b99f8" identifier + number_literal) ))))) )) (argument_list "(uVar36 + 0x1000,1)" ( (binary_expression "uVar36 + 0x1000" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }" { (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9354)" * (pointer_expression "*(code **)(puVar38 + 0x2b9354)" * (cast_expression "(code **)(puVar38 + 0x2b9354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9354)" ( (binary_expression "puVar38 + 0x2b9354" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d28))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d28)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" * (cast_expression "(code **)(puVar38 + 0x2b9d28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d28)" ( (binary_expression "puVar38 + 0x2b9d28" identifier + number_literal) ))))) )) (argument_list "(iVar29,iVar17 + iVar35,uVar36 + 1)" ( identifier , (binary_expression "iVar17 + iVar35" identifier + identifier) , (binary_expression "uVar36 + 1" identifier + number_literal) ))) ;) (expression_statement "piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);" (assignment_expression "piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29)" identifier = (cast_expression "(int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b92cc))(iVar29)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92cc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b92cc)" * (pointer_expression "*(code **)(puVar38 + 0x2b92cc)" * (cast_expression "(code **)(puVar38 + 0x2b92cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b92cc)" ( (binary_expression "puVar38 + 0x2b92cc" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))))) ;) (if_statement "if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }" if (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }" { (expression_statement "iVar17 = *piVar24;" (assignment_expression "iVar17 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" identifier = identifier) ;) (while_statement "while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }" while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9eac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9eac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9eac)" * (cast_expression "(code **)(puVar38 + 0x2b9eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9eac)" ( (binary_expression "puVar38 + 0x2b9eac" identifier + number_literal) ))))) )) (argument_list "(iVar17,puVar32)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b94e8)" * (cast_expression "(code **)(puVar38 + 0x2b94e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94e8)" ( (binary_expression "puVar38 + 0x2b94e8" identifier + number_literal) ))))) )) (argument_list "(10,puVar32)" ( number_literal , identifier ))) ;) (expression_statement "iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);" (assignment_expression "iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b94ac))(*piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(*piVar16)" ( (pointer_expression "*piVar16" * identifier) )))) ;) (expression_statement "iVar17 = piVar16[1];" (assignment_expression "iVar17 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar16 = iVar19;" (assignment_expression "*piVar16 = iVar19" (pointer_expression "*piVar16" * identifier) = identifier) ;) (expression_statement "piVar16 = piVar16 + 1;" (assignment_expression "piVar16 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) )) (argument_list "(piVar24)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(iVar29);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(iVar29)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(iVar29)" ( identifier ))) ;) })) }) (else_clause "else {\n                  uVar36 = 1;\n                }" else (compound_statement "{\n                  uVar36 = 1;\n                }" { (expression_statement "uVar36 = 1;" (assignment_expression "uVar36 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar29 = iVar35 + uVar36;" (assignment_expression "iVar29 = iVar35 + uVar36" identifier = (binary_expression "iVar35 + uVar36" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar29 < iVar28 + -5)" ( (binary_expression "iVar29 < iVar28 + -5" identifier < (binary_expression "iVar28 + -5" identifier + number_literal)) )) ;) })) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b93f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b93f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" * (cast_expression "(code **)(puVar38 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f8)" ( (binary_expression "puVar38 + 0x2b93f8" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }" if (parenthesized_expression "(piVar22[0xcd4] != 0)" ( (binary_expression "piVar22[0xcd4] != 0" (subscript_expression "piVar22[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9244))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9244)" * (pointer_expression "*(code **)(puVar38 + 0x2b9244)" * (cast_expression "(code **)(puVar38 + 0x2b9244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9244)" ( (binary_expression "puVar38 + 0x2b9244" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar4,iVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b93f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b93f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" * (cast_expression "(code **)(puVar38 + 0x2b93f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93f8)" ( (binary_expression "puVar38 + 0x2b93f8" identifier + number_literal) ))))) ;) })) (expression_statement "iVar4 = (*pcVar40)(piVar22);" (assignment_expression "iVar4 = (*pcVar40)(piVar22)" identifier = (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9180))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b9180))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9180))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9180)" * (pointer_expression "*(code **)(puVar38 + 0x2b9180)" * (cast_expression "(code **)(puVar38 + 0x2b9180)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9180)" ( (binary_expression "puVar38 + 0x2b9180" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61e8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);" do (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" ( identifier , (binary_expression "iVar5 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" * (cast_expression "(code **)(puVar38 + 0x2b98e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98e8)" ( (binary_expression "puVar38 + 0x2b98e8" identifier + number_literal) ))))) )) (argument_list "(piVar22,iVar4,uVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" ( identifier , (binary_expression "iVar6 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9dac))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" * (cast_expression "(code **)(puVar38 + 0x2b9dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dac)" ( (binary_expression "puVar38 + 0x2b9dac" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b99e8))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b99e8))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99e8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99e8)" * (pointer_expression "*(code **)(puVar38 + 0x2b99e8)" * (cast_expression "(code **)(puVar38 + 0x2b99e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99e8)" ( (binary_expression "puVar38 + 0x2b99e8" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b20))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b20))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b20)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b20)" * (cast_expression "(code **)(puVar38 + 0x2b9b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b20)" ( (binary_expression "puVar38 + 0x2b9b20" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61cc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);" do (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" ( identifier , (binary_expression "iVar5 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,iVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" ( identifier , (binary_expression "iVar6 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b20))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b20))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b20)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b20)" * (cast_expression "(code **)(puVar38 + 0x2b9b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b20)" ( (binary_expression "puVar38 + 0x2b9b20" identifier + number_literal) ))))) )) (argument_list "(piVar22)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9d50))();" (call_expression "(**(code **)(puVar38 + 0x2b9d50))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d50))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9d50)" * (pointer_expression "*(code **)(puVar38 + 0x2b9d50)" * (cast_expression "(code **)(puVar38 + 0x2b9d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9d50)" ( (binary_expression "puVar38 + 0x2b9d50" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b970c))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b970c))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b970c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b970c)" * (pointer_expression "*(code **)(puVar38 + 0x2b970c)" * (cast_expression "(code **)(puVar38 + 0x2b970c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b970c)" ( (binary_expression "puVar38 + 0x2b970c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61bc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) ))))) ;) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);" do (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" ( identifier , (binary_expression "iVar5 + -0x61d8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ba4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ba4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ba4)" * (cast_expression "(code **)(puVar38 + 0x2b9ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ba4)" ( (binary_expression "puVar38 + 0x2b9ba4" identifier + number_literal) ))))) )) (argument_list "(3,iVar4,uVar26)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" { (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" ( identifier , (binary_expression "iVar6 + -0x18b8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b970c))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b970c))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b970c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b970c)" * (pointer_expression "*(code **)(puVar38 + 0x2b970c)" * (cast_expression "(code **)(puVar38 + 0x2b970c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b970c)" ( (binary_expression "puVar38 + 0x2b970c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar33 = auStack_310d + 1;" (assignment_expression "puVar33 = auStack_310d + 1" identifier = (binary_expression "auStack_310d + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd8)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" * (cast_expression "(int *)(puVar38 + 0x2b8dd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd8)" ( (binary_expression "puVar38 + 0x2b8dd8" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5])" identifier = (call_expression "(**(code **)(puVar38 + 0x2b924c))(2,piVar22[5])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b924c)" * (pointer_expression "*(code **)(puVar38 + 0x2b924c)" * (cast_expression "(code **)(puVar38 + 0x2b924c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b924c)" ( (binary_expression "puVar38 + 0x2b924c" identifier + number_literal) ))))) )) (argument_list "(2,piVar22[5])" ( number_literal , (subscript_expression "piVar22[5]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "(piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)" ( (subscript_expression "piVar22[0xaa]" identifier [ number_literal ]) , (subscript_expression "piVar22[0xab]" identifier [ number_literal ]) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" * (cast_expression "(int *)(puVar38 + 0x2b8e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8e38)" ( (binary_expression "puVar38 + 0x2b8e38" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x619c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33)" ( (cast_expression "(int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20)" ( (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20" (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]" (cast_expression "(ulonglong)(uint)piVar22[6]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) * (cast_expression "(ulonglong)(uint)piVar22[7]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[7]" identifier [ number_literal ])))) >> number_literal) ))) , (cast_expression "(int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7])" ( (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]" (cast_expression "(ulonglong)(uint)piVar22[6]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) * (cast_expression "(ulonglong)(uint)piVar22[7]" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)piVar22[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar22[7]" identifier [ number_literal ])))) ))) , number_literal , (binary_expression "iVar4 + 0x4ff8" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9824))(puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9824))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9824)" * (pointer_expression "*(code **)(puVar38 + 0x2b9824)" * (cast_expression "(code **)(puVar38 + 0x2b9824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9824)" ( (binary_expression "puVar38 + 0x2b9824" identifier + number_literal) ))))) )) (argument_list "(puVar33)" ( identifier )))) ;) (if_statement "if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }" if (parenthesized_expression "(1 < uVar36)" ( (binary_expression "1 < uVar36" number_literal < identifier) )) (compound_statement "{\n        auStack_310d[uVar36] = 0;\n      }" { (expression_statement "auStack_310d[uVar36] = 0;" (assignment_expression "auStack_310d[uVar36] = 0" (subscript_expression "auStack_310d[uVar36]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x618c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }" if (parenthesized_expression "(*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46)" ( (binary_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46" (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x13f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }" { (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" identifier = (cast_expression "(double)piVar22[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[6] < 0)" ( (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" identifier = (cast_expression "(double)piVar22[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar22[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" if (parenthesized_expression "(piVar22[7] < 0)" ( (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));" (assignment_expression "uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" identifier = (call_expression "(**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b8e40))" ( (pointer_expression "**(code **)(puVar38 + 0x2b8e40)" * (pointer_expression "*(code **)(puVar38 + 0x2b8e40)" * (cast_expression "(code **)(puVar38 + 0x2b8e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b8e40)" ( (binary_expression "puVar38 + 0x2b8e40" identifier + number_literal) ))))) )) (argument_list "((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" ( (binary_expression "(dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (binary_expression "(dVar41 * dVar47) / dVar46" (parenthesized_expression "(dVar41 * dVar47)" ( (binary_expression "dVar41 * dVar47" identifier * identifier) )) / identifier) + (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9588)" * (pointer_expression "*(code **)(puVar38 + 0x2b9588)" * (cast_expression "(code **)(puVar38 + 0x2b9588)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9588)" ( (binary_expression "puVar38 + 0x2b9588" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33)" ( (cast_expression "(int)((ulonglong)uVar45 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar45 >> 0x20)" ( (binary_expression "(ulonglong)uVar45 >> 0x20" (cast_expression "(ulonglong)uVar45" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (binary_expression "iVar4 + 0x4ff8" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6174" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" ( (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));" (assignment_expression "uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ea4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9ea4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9ea4)" * (cast_expression "(code **)(puVar38 + 0x2b9ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9ea4)" ( (binary_expression "puVar38 + 0x2b9ea4" identifier + number_literal) ))))) )) (argument_list "(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" ( identifier , (pointer_expression "*(undefined8 *)(iVar5 + 0x7ba0)" * (cast_expression "(undefined8 *)(iVar5 + 0x7ba0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))) )))) ;) (expression_statement "dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);" (assignment_expression "dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b910c))(uVar42)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b910c))(uVar42)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b910c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b910c)" * (pointer_expression "*(code **)(puVar38 + 0x2b910c)" * (cast_expression "(code **)(puVar38 + 0x2b910c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b910c)" ( (binary_expression "puVar38 + 0x2b910c" identifier + number_literal) ))))) )) (argument_list "(uVar42)" ( identifier ))))) ;) (expression_statement "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);" (assignment_expression "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" identifier = (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" * (cast_expression "(code **)(puVar38 + 0x2b9b5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b5c)" ( (binary_expression "puVar38 + 0x2b9b5c" identifier + number_literal) ))))) )) (argument_list "(dVar46)" ( identifier ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dcc)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) ))))) ;) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar36 = (uint)dVar41;\n      }" { (expression_statement "uVar36 = (uint)dVar41;" (assignment_expression "uVar36 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);" (assignment_expression "dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier = (binary_expression "dVar46 / *(double *)(iVar5 + 0x7ba0)" identifier / (pointer_expression "*(double *)(iVar5 + 0x7ba0)" * (cast_expression "(double *)(iVar5 + 0x7ba0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7ba0)" ( (binary_expression "iVar5 + 0x7ba0" identifier + number_literal) )))))) ;) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar14 = (uint)dVar41;\n      }" { (expression_statement "uVar14 = (uint)dVar41;" (assignment_expression "uVar14 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" identifier = (binary_expression "(dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar46 - dVar47)" ( (binary_expression "dVar46 - dVar47" identifier - identifier) )) * (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" * (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar46 < *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 < *(double *)(iVar4 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar15 = (uint)dVar46;\n      }" { (expression_statement "uVar15 = (uint)dVar46;" (assignment_expression "uVar15 = (uint)dVar46" identifier = (cast_expression "(uint)dVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar46 - *(double *)(iVar4 + 0x1410))" ( (binary_expression "dVar46 - *(double *)(iVar4 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar4 + 0x1410)" * (cast_expression "(double *)(iVar4 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1410)" ( (binary_expression "iVar4 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6140" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b942c))(0)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b942c))(0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b942c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b942c)" * (pointer_expression "*(code **)(puVar38 + 0x2b942c)" * (cast_expression "(code **)(puVar38 + 0x2b942c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b942c)" ( (binary_expression "puVar38 + 0x2b942c" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x611c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9978);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9978)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9978)" * (cast_expression "(code **)(puVar38 + 0x2b9978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9978)" ( (binary_expression "puVar38 + 0x2b9978" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" else (compound_statement "{\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" { (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b80))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b80)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b80)" * (cast_expression "(code **)(puVar38 + 0x2b9b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b80)" ( (binary_expression "puVar38 + 0x2b9b80" identifier + number_literal) ))))) )) (argument_list "(0x44,0,iVar4)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" ( (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" * (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" * (cast_expression "(code **)(puVar38 + 0x2b99ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99ac)" ( (binary_expression "puVar38 + 0x2b99ac" identifier + number_literal) ))))) )) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      pdStack_4198 = (double *)0x0;\n    }" { (expression_statement "pdStack_4198 = (double *)0x0;" (assignment_expression "pdStack_4198 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" else (compound_statement "{\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" { (expression_statement "pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);" (assignment_expression "pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" identifier = (cast_expression "(double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b982c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b982c)" * (pointer_expression "*(code **)(puVar38 + 0x2b982c)" * (cast_expression "(code **)(puVar38 + 0x2b982c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b982c)" ( (binary_expression "puVar38 + 0x2b982c" identifier + number_literal) ))))) )) (argument_list "(iVar6,0,10)" ( identifier , number_literal , number_literal ))))) ;) }))) (if_statement "if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }" if (parenthesized_expression "(piVar22[0xcdb] != -0x54535255)" ( (binary_expression "piVar22[0xcdb] != -0x54535255" (subscript_expression "piVar22[0xcdb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }" { (expression_statement "uVar21 = 0x90;" (assignment_expression "uVar21 = 0x90" identifier = number_literal) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9af4);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9af4)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" * (cast_expression "(code **)(puVar38 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9af4)" ( (binary_expression "puVar38 + 0x2b9af4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4" identifier = (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5ba4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);" statement_identifier : (expression_statement "uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);" (assignment_expression "uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" identifier = (call_expression "(*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x3784" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" * (cast_expression "(int *)(puVar38 + 0x2b8dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd4)" ( (binary_expression "puVar38 + 0x2b8dd4" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier )))) ;)) (return_statement "return uVar36;" return identifier ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b99f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b99f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" * (cast_expression "(code **)(puVar38 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99f8)" ( (binary_expression "puVar38 + 0x2b99f8" identifier + number_literal) ))))) ;) (if_statement "if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }" if (parenthesized_expression "(piVar22[0xcd4] != 0)" ( (binary_expression "piVar22[0xcd4] != 0" (subscript_expression "piVar22[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }" { (expression_statement "(**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);" (call_expression "(**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96cc))" ( (pointer_expression "**(code **)(puVar38 + 0x2b96cc)" * (pointer_expression "*(code **)(puVar38 + 0x2b96cc)" * (cast_expression "(code **)(puVar38 + 0x2b96cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b96cc)" ( (binary_expression "puVar38 + 0x2b96cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0)" ( number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "piVar22 + 0xd0" identifier + number_literal) ))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b99f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b99f8)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" * (cast_expression "(code **)(puVar38 + 0x2b99f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b99f8)" ( (binary_expression "puVar38 + 0x2b99f8" identifier + number_literal) ))))) ;) })) (expression_statement "puVar12 = (undefined *)(*pcVar40)(0x41,0x78);" (assignment_expression "puVar12 = (undefined *)(*pcVar40)(0x41,0x78)" identifier = (cast_expression "(undefined *)(*pcVar40)(0x41,0x78)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar40)(0x41,0x78)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(0x41,0x78)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }" if (parenthesized_expression "(puVar12 == (undefined *)0x0)" ( (binary_expression "puVar12 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }" { (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b93d8))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b93d8))()" identifier = (call_expression "(**(code **)(puVar38 + 0x2b93d8))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93d8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b93d8)" * (pointer_expression "*(code **)(puVar38 + 0x2b93d8)" * (cast_expression "(code **)(puVar38 + 0x2b93d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b93d8)" ( (binary_expression "puVar38 + 0x2b93d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();" (assignment_expression "puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar38 + 0x2b9e9c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e9c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9e9c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9e9c)" * (cast_expression "(code **)(puVar38 + 0x2b9e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9e9c)" ( (binary_expression "puVar38 + 0x2b9e9c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);" (assignment_expression "uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b98d8))(*puVar11)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98d8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b98d8)" * (pointer_expression "*(code **)(puVar38 + 0x2b98d8)" * (cast_expression "(code **)(puVar38 + 0x2b98d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b98d8)" ( (binary_expression "puVar38 + 0x2b98d8" identifier + number_literal) ))))) )) (argument_list "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b940c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b940c)" * (pointer_expression "*(code **)(puVar38 + 0x2b940c)" * (cast_expression "(code **)(puVar38 + 0x2b940c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b940c)" ( (binary_expression "puVar38 + 0x2b940c" identifier + number_literal) ))))) )) (argument_list "(uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x16f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x3e28" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9560)" * (pointer_expression "*(code **)(puVar38 + 0x2b9560)" * (cast_expression "(code **)(puVar38 + 0x2b9560)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9560)" ( (binary_expression "puVar38 + 0x2b9560" identifier + number_literal) ))))) )) (argument_list "(uVar26)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b979c))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b979c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b979c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b979c)" * (pointer_expression "*(code **)(puVar38 + 0x2b979c)" * (cast_expression "(code **)(puVar38 + 0x2b979c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b979c)" ( (binary_expression "puVar38 + 0x2b979c" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b923c))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b923c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b923c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b923c)" * (pointer_expression "*(code **)(puVar38 + 0x2b923c)" * (cast_expression "(code **)(puVar38 + 0x2b923c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b923c)" ( (binary_expression "puVar38 + 0x2b923c" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar38 + 0x2b9dd8))();" (call_expression "(**(code **)(puVar38 + 0x2b9dd8))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dd8))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9dd8)" * (pointer_expression "*(code **)(puVar38 + 0x2b9dd8)" * (cast_expression "(code **)(puVar38 + 0x2b9dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9dd8)" ( (binary_expression "puVar38 + 0x2b9dd8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9b4c))(1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b4c))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9b4c)" * (pointer_expression "*(code **)(puVar38 + 0x2b9b4c)" * (cast_expression "(code **)(puVar38 + 0x2b9b4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9b4c)" ( (binary_expression "puVar38 + 0x2b9b4c" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal )))) ;) (return_statement "return uVar36;" return identifier ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);" (call_expression "(**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9bc0))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9bc0)" * (pointer_expression "*(code **)(puVar38 + 0x2b9bc0)" * (cast_expression "(code **)(puVar38 + 0x2b9bc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9bc0)" ( (binary_expression "puVar38 + 0x2b9bc0" identifier + number_literal) ))))) )) (argument_list "(puVar12,0,0x1e78)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "puVar13 = (undefined8 *)(puVar12 + 0x10);" (assignment_expression "puVar13 = (undefined8 *)(puVar12 + 0x10)" identifier = (cast_expression "(undefined8 *)(puVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) ;) (expression_statement "uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);" (assignment_expression "uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" * (cast_expression "(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);" (assignment_expression "uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" * (cast_expression "(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b60" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);" do (compound_statement "{\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    }" { (while_statement "while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }" while (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) )) (compound_statement "{\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }" { (expression_statement "puVar13[1] = uVar42;" (assignment_expression "puVar13[1] = uVar42" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar13 + 0xf;" (assignment_expression "puVar13 = puVar13 + 0xf" identifier = (binary_expression "puVar13 + 0xf" identifier + number_literal)) ;) (if_statement "if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;" if (parenthesized_expression "((undefined8 *)(puVar12 + 0x1e88) == puVar13)" ( (binary_expression "(undefined8 *)(puVar12 + 0x1e88) == puVar13" (cast_expression "(undefined8 *)(puVar12 + 0x1e88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x1e88)" ( (binary_expression "puVar12 + 0x1e88" identifier + number_literal) ))) == identifier) )) (goto_statement "goto LAB_000efcf0;" goto statement_identifier ;)) })) (expression_statement "*puVar13 = uVar45;" (assignment_expression "*puVar13 = uVar45" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar13 + 0xf;" (assignment_expression "puVar13 = puVar13 + 0xf" identifier = (binary_expression "puVar13 + 0xf" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined8 *)(puVar12 + 0x1e88) != puVar13)" ( (binary_expression "(undefined8 *)(puVar12 + 0x1e88) != puVar13" (cast_expression "(undefined8 *)(puVar12 + 0x1e88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x1e88)" ( (binary_expression "puVar12 + 0x1e88" identifier + number_literal) ))) != identifier) )) ;) (labeled_statement "LAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" statement_identifier : (if_statement "if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" if (parenthesized_expression "(0 < piVar22[7])" ( (binary_expression "0 < piVar22[7]" number_literal < (subscript_expression "piVar22[7]" identifier [ number_literal ])) )) (compound_statement "{\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);" (assignment_expression "uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" identifier = (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x3708" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);" do (compound_statement "{\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      }" { (expression_statement "iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);" (assignment_expression "iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26)" identifier = (call_expression "(*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(piVar22,0,iVar7,iVar6,1,uVar26)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" identifier = (subscript_expression "piVar22[6]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }" { (expression_statement "iVar29 = piVar22[0xb0];" (assignment_expression "iVar29 = piVar22[0xb0]" identifier = (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) ;) (expression_statement "piVar24 = (int *)piVar22[0xb4];" (assignment_expression "piVar24 = (int *)piVar22[0xb4]" identifier = (cast_expression "(int *)piVar22[0xb4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[0xb4]" identifier [ number_literal ]))) ;) (expression_statement "iVar28 = piVar24[0x13];" (assignment_expression "iVar28 = piVar24[0x13]" identifier = (subscript_expression "piVar24[0x13]" identifier [ number_literal ])) ;) (do_statement "do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);" do (compound_statement "{\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          }" { (while_statement "while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }" while (parenthesized_expression "((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)))" ( (parenthesized_expression "(iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))" ( (comma_expression "iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" (assignment_expression "iVar27 = iVar8 + iVar29 * 4" identifier = (binary_expression "iVar8 + iVar29 * 4" identifier + (binary_expression "iVar29 * 4" identifier * number_literal))) , (binary_expression "iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" (binary_expression "iVar28 != 0" identifier != number_literal) && (parenthesized_expression "(*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" ( (binary_expression "*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48" (pointer_expression "*(float *)(iVar8 + piVar24[0x14] * 4)" * (cast_expression "(float *)(iVar8 + piVar24[0x14] * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + piVar24[0x14] * 4)" ( (binary_expression "iVar8 + piVar24[0x14] * 4" identifier + (binary_expression "piVar24[0x14] * 4" (subscript_expression "piVar24[0x14]" identifier [ number_literal ]) * number_literal)) )))) <= (cast_expression "(float)uVar48" ( (type_descriptor "float" primitive_type) ) identifier)) )))) )) )) (compound_statement "{\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar27;" (assignment_expression "iVar8 = iVar27" identifier = identifier) ;) (if_statement "if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }" if (parenthesized_expression "(iVar6 == iVar9)" ( (binary_expression "iVar6 == iVar9" identifier == identifier) )) (compound_statement "{\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }" { (expression_statement "iVar8 = piVar22[7];" (assignment_expression "iVar8 = piVar22[7]" identifier = (subscript_expression "piVar22[7]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000efe04;" goto statement_identifier ;) })) })) (if_statement "if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }" { (expression_statement "pfVar23 = (float *)(iVar27 + iVar29 * -4);" (assignment_expression "pfVar23 = (float *)(iVar27 + iVar29 * -4)" identifier = (cast_expression "(float *)(iVar27 + iVar29 * -4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + iVar29 * -4)" ( (binary_expression "iVar27 + iVar29 * -4" identifier + (binary_expression "iVar29 * -4" identifier * number_literal)) )))) ;) (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" identifier = identifier) ;) (labeled_statement "LAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);" statement_identifier : (do_statement "do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);" do (compound_statement "{\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              }" { (expression_statement "iVar8 = *piVar16;" (assignment_expression "iVar8 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (if_statement "if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }" if (parenthesized_expression "(piVar24[iVar8 * 3 + 1] != 0)" ( (binary_expression "piVar24[iVar8 * 3 + 1] != 0" (subscript_expression "piVar24[iVar8 * 3 + 1]" identifier [ (binary_expression "iVar8 * 3 + 1" (binary_expression "iVar8 * 3" identifier * number_literal) + number_literal) ]) != number_literal) )) (compound_statement "{\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }" { (expression_statement "dVar46 = (double)*pfVar23;" (assignment_expression "dVar46 = (double)*pfVar23" identifier = (cast_expression "(double)*pfVar23" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar23" * identifier))) ;) (if_statement "if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" if (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) )) (compound_statement "{\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }" { (if_statement "if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }" if (parenthesized_expression "(dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10))" ( (binary_expression "dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)" identifier < (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x10)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x10" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) ))))) )) (compound_statement "{\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }" { (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "*(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;" (assignment_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x10)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x10" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "pfVar23 = pfVar23 + 1;" (assignment_expression "pfVar23 = pfVar23 + 1" identifier = (binary_expression "pfVar23 + 1" identifier + number_literal)) ;) (if_statement "if (piVar24 + iVar29 * 3 == piVar16) break;" if (parenthesized_expression "(piVar24 + iVar29 * 3 == piVar16)" ( (binary_expression "piVar24 + iVar29 * 3 == piVar16" (binary_expression "piVar24 + iVar29 * 3" identifier + (binary_expression "iVar29 * 3" identifier * number_literal)) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000efd9c;" goto statement_identifier ;) })) }) (else_clause "else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" else (if_statement "if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" if (parenthesized_expression "(*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46)" ( (binary_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x18)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x18" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) )))) < identifier) )) (compound_statement "{\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" { (expression_statement "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;" (assignment_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18)" * (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x18)" ( (binary_expression "puVar12 + iVar8 * 0x78 + 0x18" (binary_expression "puVar12 + iVar8 * 0x78" identifier + (binary_expression "iVar8 * 0x78" identifier * number_literal)) + number_literal) )))) = identifier) ;) })))) })) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "pfVar23 = pfVar23 + 1;" (assignment_expression "pfVar23 = pfVar23 + 1" identifier = (binary_expression "pfVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 + iVar29 * 3 != piVar16)" ( (binary_expression "piVar24 + iVar29 * 3 != piVar16" (binary_expression "piVar24 + iVar29 * 3" identifier + (binary_expression "iVar29 * 3" identifier * number_literal)) != identifier) )) ;)) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar27;" (assignment_expression "iVar8 = iVar27" identifier = identifier) ;) }) while (parenthesized_expression "(iVar6 != iVar9)" ( (binary_expression "iVar6 != iVar9" identifier != identifier) )) ;) })) (expression_statement "iVar8 = piVar22[7];" (assignment_expression "iVar8 = piVar22[7]" identifier = (subscript_expression "piVar22[7]" identifier [ number_literal ])) ;) (labeled_statement "LAB_000efe04:\n        iVar7 = iVar7 + 1;" statement_identifier : (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" * (cast_expression "(code **)(puVar38 + 0x2b9c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9c50)" ( (binary_expression "puVar38 + 0x2b9c50" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 < iVar8)" ( (binary_expression "iVar7 < iVar8" identifier < identifier) )) ;) }))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" * (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" * (cast_expression "(code **)(puVar38 + 0x2b9a30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9a30)" ( (binary_expression "puVar38 + 0x2b9a30" identifier + number_literal) ))))) )) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4)" ( identifier , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (if_statement "if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }" if (parenthesized_expression "(uVar36 < 0x22)" ( (binary_expression "uVar36 < 0x22" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }" { (expression_statement "uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ()" identifier = (call_expression "(*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ()" (parenthesized_expression "(*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))" ( (pointer_expression "*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" * (cast_expression "(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" ( (binary_expression "puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c" (binary_expression "puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x60b0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar36 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar36;" return identifier ;) })) (if_statement "if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" if (parenthesized_expression "(piVar22[0xb0] < 1)" ( (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      iVar4 = piVar22[0xaf];\n    }" { (expression_statement "iVar4 = piVar22[0xaf];" (assignment_expression "iVar4 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" else (compound_statement "{\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" identifier = (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) ))))) ;) (do_statement "do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);" do (compound_statement "{\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      }" { (expression_statement "FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);" (call_expression "FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12)" identifier (argument_list "(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12)" ( identifier , identifier , identifier , (binary_expression "iVar6 + -0x6ab0" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 < piVar22[0xb0])" ( (binary_expression "iVar4 < piVar22[0xb0]" identifier < (subscript_expression "piVar22[0xb0]" identifier [ number_literal ])) )) ;) (expression_statement "iVar4 = piVar22[0xaf];" (assignment_expression "iVar4 = piVar22[0xaf]" identifier = (subscript_expression "piVar22[0xaf]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }" { (expression_statement "FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );" (call_expression "FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  )" identifier (argument_list "(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  )" ( identifier , identifier , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" identifier = (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" * (cast_expression "(code **)(puVar38 + 0x2b94ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b94ac)" ( (binary_expression "puVar38 + 0x2b94ac" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar40)(puVar12);" (call_expression "(*pcVar40)(puVar12)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9208))(puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9208))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9208)" * (pointer_expression "*(code **)(puVar38 + 0x2b9208)" * (cast_expression "(code **)(puVar38 + 0x2b9208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9208)" ( (binary_expression "puVar38 + 0x2b9208" identifier + number_literal) ))))) )) (argument_list "(puVar32)" ( identifier )))) ;) (if_statement "if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }" if (parenthesized_expression "(iStack_10c == *piVar10)" ( (binary_expression "iStack_10c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n    return (uint)(iVar4 == 0);\n  }" { (return_statement "return (uint)(iVar4 == 0);" return (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) ))) ;) })) (expression_statement "(**(code **)(puVar38 + 0x2b9550))();" (call_expression "(**(code **)(puVar38 + 0x2b9550))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9550))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9550)" * (pointer_expression "*(code **)(puVar38 + 0x2b9550)" * (cast_expression "(code **)(puVar38 + 0x2b9550)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9550)" ( (binary_expression "puVar38 + 0x2b9550" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);" statement_identifier : (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" identifier = (call_expression "(**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9af4))" ( (pointer_expression "**(code **)(puVar38 + 0x2b9af4)" * (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" * (cast_expression "(code **)(puVar38 + 0x2b9af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x2b9af4)" ( (binary_expression "puVar38 + 0x2b9af4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" ( (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0xdd0" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" * (cast_expression "(int *)(puVar38 + 0x2b8dcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dcc)" ( (binary_expression "puVar38 + 0x2b8dcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" * (cast_expression "(int *)(puVar38 + 0x2b8dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x2b8dd0)" ( (binary_expression "puVar38 + 0x2b8dd0" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return uVar36;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (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 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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 (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 ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 = (pointer_expression & IDENT)) ;) (do_statement do (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)) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression 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) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 + (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 , (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) ))))) ;) (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 , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) ))))) ;) (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 , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (subscript_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) ))))) ;) (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 , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) + IDENT) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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) ;) (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 (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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 ))) ;) (expression_statement (assignment_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 = (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) )))) != (char_literal ' escape_sequence ')) )) (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 IDENT + LIT) , 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) , IDENT ))) ;) }) (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 (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) , 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) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })))) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 , (binary_expression IDENT + LIT) , 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 ( 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) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (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 ( LIT , IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (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) , (binary_expression IDENT + LIT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (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))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (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 { (expression_statement (assignment_expression IDENT = (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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (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) )))) ))) ;) })) (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 (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (binary_expression (subscript_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 ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (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) , (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 = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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) ) (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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)) ;) }))) (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 = (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 (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) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) 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 , (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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , 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 IDENT == LIT) )) (compound_statement { (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , 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 ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (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 (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 )))) ;) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression 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 , (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (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) , 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 )))) ;) (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 )))) ;) (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) , 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 * IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) ))) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , 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 { (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (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) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) >> LIT) ))) , (call_expression IDENT (argument_list ( (binary_expression IDENT / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT ))) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 )))) ;) (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 , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (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 , (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 = (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 , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 (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 == IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) }) (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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , 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 (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) ))) ;) (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 (binary_expression IDENT + (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) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) / (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression LIT - (subscript_expression IDENT [ LIT ])) & LIT) ))) ))))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * IDENT) ))) >> LIT) ))) , (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , 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 (binary_expression IDENT + (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) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_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 , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 * (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) )))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) ))) )) + 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (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) ))))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (goto_statement goto statement_identifier ;)) (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) ))))) ;) (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 , LIT , (binary_expression IDENT + LIT) , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 , (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 LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = 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 ( LIT , (pointer_expression * 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) , 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 < (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 , (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) != 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 + IDENT)) ;) })) (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 (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) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + 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 , (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) >> LIT) ))) , (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , LIT ))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 = (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) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_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 ))) ;) })) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 ( )))) ;) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) * LIT)) )))) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (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 , 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 , 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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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 (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 + (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 + (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 (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 + (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 , 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 , (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 , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) )) (break_statement break ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (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 , LIT , IDENT )))) ;) (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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (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 , (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 , IDENT ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (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 , (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 LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (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 , 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 , 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 , 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 , 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 , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 , 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 , LIT , 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 (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , 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 , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (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 , 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 , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) , (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT ))) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , 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 , (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 (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 , (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) ))))) ;) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 , (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 (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 (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) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (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) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE) ) (subscript_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 , 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 (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 , (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 , (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 , (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 , (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 , (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 , (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 = (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 , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (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) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_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 (subscript_expression IDENT [ LIT ]) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (subscript_expression IDENT [ LIT ]) != 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) ))))) ;) (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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (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 ( LIT , (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 , (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 (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (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 *)) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + LIT) ))) < LIT) )) (break_statement break ;)) }) while (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) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + 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 , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 , 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 ))) ;) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }) (else_clause else (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) )))))) ;) (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 = (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 (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) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 = (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 ( (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 , (binary_expression IDENT + LIT) , 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 , 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 , (binary_expression IDENT + LIT) , 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 ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (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 ))) ;) })) (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 = (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 != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (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 LIT < IDENT) )) (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 , IDENT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( (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 LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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)) ;) (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 , (pointer_expression * IDENT) , (subscript_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 ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_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 (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) ))) ;) (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) , 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 , 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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ( (pointer_expression & IDENT) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_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 (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) ))) ;) (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) , 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 (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) )) (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 (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) ))) ;) (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) ))))) ;) (do_statement do (compound_statement { (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 )))) ;) }) while (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 ))) ;) (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) , 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 , (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 LIT < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' escape_sequence ')) )) (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 )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + 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 (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) ))) <= IDENT) )) (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 ( (binary_expression IDENT + LIT) , 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 )))) ;) (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) , (binary_expression 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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 , 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 ( LIT , 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 ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 , 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 )))) ;) }) while (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 ))) ;) (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 (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) ))) ;) (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) ))))) ;) (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 , (binary_expression IDENT + LIT) , 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 , 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 , (binary_expression IDENT + LIT) , 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 (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) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (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) ))))) ;) (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 , (binary_expression IDENT + LIT) , 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 )))) ;) (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 , (binary_expression IDENT + LIT) , 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 (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 ( )))) ;) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 , (binary_expression IDENT + LIT) , 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 , 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 , (binary_expression IDENT + LIT) , 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 ( )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (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 = (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 , (subscript_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 (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 ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT ))) ;) (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) , 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 ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ))) , LIT , (binary_expression IDENT + LIT) , LIT , 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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (if_statement if (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT * IDENT) )) / IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT , (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) 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 , (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) ) (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) ) (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) ))))) ;) (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 = (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (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) , IDENT , 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 )))) ;) (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) , 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 (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 , LIT , 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT )))) ;)) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (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 ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 (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 ))) ;) (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 ( LIT )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) != IDENT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) (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 IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + 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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) == IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) })))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (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 (binary_expression IDENT + (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) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (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) ))))) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (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 == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;)) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)\n\n{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}" (type_identifier "uint") (function_declarator "FUN_000ef7f8(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)" (identifier "FUN_000ef7f8") (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,\n                 double param_5,int param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "double param_5" (primitive_type "double") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int *piVar20;\n  undefined4 uVar21;\n  int *piVar22;\n  float *pfVar23;\n  int *piVar24;\n  char *pcVar25;\n  undefined4 uVar26;\n  int iVar27;\n  int iVar28;\n  int iVar29;\n  double *pdVar30;\n  double *pdVar31;\n  undefined *puVar32;\n  undefined1 *puVar33;\n  undefined *puVar34;\n  int iVar35;\n  uint uVar36;\n  char *pcVar37;\n  undefined *puVar38;\n  undefined8 *puVar39;\n  code *pcVar40;\n  double dVar41;\n  undefined8 uVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  ulonglong uVar48;\n  double *pdStack_4198;\n  int iStack_4190;\n  int iStack_418c;\n  int iStack_4180;\n  undefined4 uStack_416c;\n  int aiStack_4168 [4];\n  undefined8 uStack_4158;\n  int iStack_4150;\n  double dStack_4140;\n  double dStack_4138;\n  double dStack_4130;\n  double dStack_4128;\n  double dStack_4120;\n  double dStack_4118;\n  undefined1 auStack_410c [4095];\n  undefined1 auStack_310d [4097];\n  undefined1 auStack_210c [4096];\n  undefined1 auStack_110c [4096];\n  int iStack_10c;\n  double *pdStack_108;\n  int iStack_104;\n  undefined8 *puStack_100;\n  undefined4 uStack_fc;\n  undefined *puStack_f8;\n  undefined4 uStack_f4;\n  undefined *puStack_f0;\n  uint uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  double dStack_e0;\n  double dStack_d8;\n  double dStack_d0;\n  double local_b0;\n  double local_a8;\n  double local_a0;\n  double local_98;\n  undefined8 local_88;\n  undefined4 local_80 [15];\n  int *local_44;\n  \n  puVar12 = PTR___stack_chk_guard_003a9230;\n  local_44 = *(int **)PTR___stack_chk_guard_003a9230;\n  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);\n  puVar13 = &local_88;\n  do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));\n  pdVar30 = (double *)(param_6 + param_2 * 0x80);\n  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[9];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[10];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = pdVar30[0xb];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xc];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xd];\n  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_b0 = pdVar30[0xe];\n  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);\n  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  dVar46 = param_5 * pdVar30[0xf];\n  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n  local_a0 = pdVar30[0xf];\n  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);\n  local_b0 = dVar46;\n  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);\n  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;\n  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;\n  iVar4 = 0;\n  puVar13 = &local_88;\n  do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);\n  if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }\n  pcVar40 = IdentifyImage;\n  piVar22 = local_44;\n  puVar38 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  uVar26 = SUB84(dVar41,0);\n  piVar10 = *(int **)(puVar38 + 0x2b971c);\n  puStack_f0 = puVar12;\n  uStack_f4 = 8;\n  iStack_10c = *piVar10;\n  pdStack_108 = pdVar31;\n  iStack_104 = iVar5;\n  puStack_100 = puVar39;\n  uStack_fc = param_1;\n  puStack_f8 = puVar34;\n  uStack_ec = uVar36;\n  uStack_e8 = uVar21;\n  pcStack_e4 = pcVar40;\n  dStack_e0 = dVar47;\n  dStack_d8 = param_5;\n  dStack_d0 = dVar46;\n  if (piVar22 == (int *)0x0) goto LAB_000f38b4;\n  if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }\n  if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }\n  uVar36 = piVar22[1];\n  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);\n  if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }\n  (*pcVar40)(puVar12);\n  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);\n  if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }\n  (**(code **)(puVar38 + 0x2b9550))();\nLAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);\n  return uVar36;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined8 *puVar13;" (type_identifier "undefined8") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "undefined4 uVar21;" (type_identifier "undefined4") (identifier "uVar21") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "float *pfVar23;" (primitive_type "float") (pointer_declarator "*pfVar23" (* "*") (identifier "pfVar23")) (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "char *pcVar25;" (primitive_type "char") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "undefined4 uVar26;" (type_identifier "undefined4") (identifier "uVar26") (; ";")) (declaration "int iVar27;" (primitive_type "int") (identifier "iVar27") (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "double *pdVar30;" (primitive_type "double") (pointer_declarator "*pdVar30" (* "*") (identifier "pdVar30")) (; ";")) (declaration "double *pdVar31;" (primitive_type "double") (pointer_declarator "*pdVar31" (* "*") (identifier "pdVar31")) (; ";")) (declaration "undefined *puVar32;" (type_identifier "undefined") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "undefined1 *puVar33;" (type_identifier "undefined1") (pointer_declarator "*puVar33" (* "*") (identifier "puVar33")) (; ";")) (declaration "undefined *puVar34;" (type_identifier "undefined") (pointer_declarator "*puVar34" (* "*") (identifier "puVar34")) (; ";")) (declaration "int iVar35;" (primitive_type "int") (identifier "iVar35") (; ";")) (declaration "uint uVar36;" (type_identifier "uint") (identifier "uVar36") (; ";")) (declaration "char *pcVar37;" (primitive_type "char") (pointer_declarator "*pcVar37" (* "*") (identifier "pcVar37")) (; ";")) (declaration "undefined *puVar38;" (type_identifier "undefined") (pointer_declarator "*puVar38" (* "*") (identifier "puVar38")) (; ";")) (declaration "undefined8 *puVar39;" (type_identifier "undefined8") (pointer_declarator "*puVar39" (* "*") (identifier "puVar39")) (; ";")) (declaration "code *pcVar40;" (type_identifier "code") (pointer_declarator "*pcVar40" (* "*") (identifier "pcVar40")) (; ";")) (declaration "double dVar41;" (primitive_type "double") (identifier "dVar41") (; ";")) (declaration "undefined8 uVar42;" (type_identifier "undefined8") (identifier "uVar42") (; ";")) (declaration "double dVar43;" (primitive_type "double") (identifier "dVar43") (; ";")) (declaration "double dVar44;" (primitive_type "double") (identifier "dVar44") (; ";")) (declaration "undefined8 uVar45;" (type_identifier "undefined8") (identifier "uVar45") (; ";")) (declaration "double dVar46;" (primitive_type "double") (identifier "dVar46") (; ";")) (declaration "double dVar47;" (primitive_type "double") (identifier "dVar47") (; ";")) (declaration "ulonglong uVar48;" (type_identifier "ulonglong") (identifier "uVar48") (; ";")) (declaration "double *pdStack_4198;" (primitive_type "double") (pointer_declarator "*pdStack_4198" (* "*") (identifier "pdStack_4198")) (; ";")) (declaration "int iStack_4190;" (primitive_type "int") (identifier "iStack_4190") (; ";")) (declaration "int iStack_418c;" (primitive_type "int") (identifier "iStack_418c") (; ";")) (declaration "int iStack_4180;" (primitive_type "int") (identifier "iStack_4180") (; ";")) (declaration "undefined4 uStack_416c;" (type_identifier "undefined4") (identifier "uStack_416c") (; ";")) (declaration "int aiStack_4168 [4];" (primitive_type "int") (array_declarator "aiStack_4168 [4]" (identifier "aiStack_4168") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined8 uStack_4158;" (type_identifier "undefined8") (identifier "uStack_4158") (; ";")) (declaration "int iStack_4150;" (primitive_type "int") (identifier "iStack_4150") (; ";")) (declaration "double dStack_4140;" (primitive_type "double") (identifier "dStack_4140") (; ";")) (declaration "double dStack_4138;" (primitive_type "double") (identifier "dStack_4138") (; ";")) (declaration "double dStack_4130;" (primitive_type "double") (identifier "dStack_4130") (; ";")) (declaration "double dStack_4128;" (primitive_type "double") (identifier "dStack_4128") (; ";")) (declaration "double dStack_4120;" (primitive_type "double") (identifier "dStack_4120") (; ";")) (declaration "double dStack_4118;" (primitive_type "double") (identifier "dStack_4118") (; ";")) (declaration "undefined1 auStack_410c [4095];" (type_identifier "undefined1") (array_declarator "auStack_410c [4095]" (identifier "auStack_410c") ([ "[") (number_literal "4095") (] "]")) (; ";")) (declaration "undefined1 auStack_310d [4097];" (type_identifier "undefined1") (array_declarator "auStack_310d [4097]" (identifier "auStack_310d") ([ "[") (number_literal "4097") (] "]")) (; ";")) (declaration "undefined1 auStack_210c [4096];" (type_identifier "undefined1") (array_declarator "auStack_210c [4096]" (identifier "auStack_210c") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "undefined1 auStack_110c [4096];" (type_identifier "undefined1") (array_declarator "auStack_110c [4096]" (identifier "auStack_110c") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int iStack_10c;" (primitive_type "int") (identifier "iStack_10c") (; ";")) (declaration "double *pdStack_108;" (primitive_type "double") (pointer_declarator "*pdStack_108" (* "*") (identifier "pdStack_108")) (; ";")) (declaration "int iStack_104;" (primitive_type "int") (identifier "iStack_104") (; ";")) (declaration "undefined8 *puStack_100;" (type_identifier "undefined8") (pointer_declarator "*puStack_100" (* "*") (identifier "puStack_100")) (; ";")) (declaration "undefined4 uStack_fc;" (type_identifier "undefined4") (identifier "uStack_fc") (; ";")) (declaration "undefined *puStack_f8;" (type_identifier "undefined") (pointer_declarator "*puStack_f8" (* "*") (identifier "puStack_f8")) (; ";")) (declaration "undefined4 uStack_f4;" (type_identifier "undefined4") (identifier "uStack_f4") (; ";")) (declaration "undefined *puStack_f0;" (type_identifier "undefined") (pointer_declarator "*puStack_f0" (* "*") (identifier "puStack_f0")) (; ";")) (declaration "uint uStack_ec;" (type_identifier "uint") (identifier "uStack_ec") (; ";")) (declaration "undefined4 uStack_e8;" (type_identifier "undefined4") (identifier "uStack_e8") (; ";")) (declaration "code *pcStack_e4;" (type_identifier "code") (pointer_declarator "*pcStack_e4" (* "*") (identifier "pcStack_e4")) (; ";")) (declaration "double dStack_e0;" (primitive_type "double") (identifier "dStack_e0") (; ";")) (declaration "double dStack_d8;" (primitive_type "double") (identifier "dStack_d8") (; ";")) (declaration "double dStack_d0;" (primitive_type "double") (identifier "dStack_d0") (; ";")) (declaration "double local_b0;" (primitive_type "double") (identifier "local_b0") (; ";")) (declaration "double local_a8;" (primitive_type "double") (identifier "local_a8") (; ";")) (declaration "double local_a0;" (primitive_type "double") (identifier "local_a0") (; ";")) (declaration "double local_98;" (primitive_type "double") (identifier "local_98") (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "undefined4 local_80 [15];" (type_identifier "undefined4") (array_declarator "local_80 [15]" (identifier "local_80") ([ "[") (number_literal "15") (] "]")) (; ";")) (declaration "int *local_44;" (primitive_type "int") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (expression_statement "puVar12 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar12 = PTR___stack_chk_guard_003a9230" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (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 "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (expression_statement "puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);" (assignment_expression "puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60f0)" (( "(") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60f0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x60f0")) () ")")))) (; ";")) (expression_statement "puVar13 = &local_88;" (assignment_expression "puVar13 = &local_88" (identifier "puVar13") (= "=") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (; ";")) (do_statement "do {\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));" (do "do") (compound_statement "{\n    puVar3 = puVar11 + 4;\n    *(undefined4 *)puVar13 = *puVar11;\n    uVar26 = puVar11[2];\n    uVar21 = puVar11[3];\n    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];\n    *(undefined4 *)(puVar13 + 1) = uVar26;\n    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;\n    puVar11 = puVar3;\n    puVar13 = puVar13 + 2;\n  }" ({ "{") (expression_statement "puVar3 = puVar11 + 4;" (assignment_expression "puVar3 = puVar11 + 4" (identifier "puVar3") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)puVar13 = *puVar11;" (assignment_expression "*(undefined4 *)puVar13 = *puVar11" (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13"))) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "uVar26 = puVar11[2];" (assignment_expression "uVar26 = puVar11[2]" (identifier "uVar26") (= "=") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar21 = puVar11[3];" (assignment_expression "uVar21 = puVar11[3]" (identifier "uVar21") (= "=") (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)puVar13 + 4) = puVar11[1];" (assignment_expression "*(undefined4 *)((int)puVar13 + 4) = puVar11[1]" (pointer_expression "*(undefined4 *)((int)puVar13 + 4)" (* "*") (cast_expression "(undefined4 *)((int)puVar13 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + 4)" (( "(") (binary_expression "(int)puVar13 + 4" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + 1) = uVar26;" (assignment_expression "*(undefined4 *)(puVar13 + 1) = uVar26" (pointer_expression "*(undefined4 *)(puVar13 + 1)" (* "*") (cast_expression "(undefined4 *)(puVar13 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 1)" (( "(") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "*(undefined4 *)((int)puVar13 + 0xc) = uVar21;" (assignment_expression "*(undefined4 *)((int)puVar13 + 0xc) = uVar21" (pointer_expression "*(undefined4 *)((int)puVar13 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)puVar13 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + 0xc)" (( "(") (binary_expression "(int)puVar13 + 0xc" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar11 = puVar3;" (assignment_expression "puVar11 = puVar3" (identifier "puVar11") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar13 = puVar13 + 2;" (assignment_expression "puVar13 = puVar13 + 2" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 2" (identifier "puVar13") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0))" (( "(") (binary_expression "puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x60b0)" (( "(") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x60b0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x60b0")) () ")")))) () ")")) (; ";")) (expression_statement "pdVar30 = (double *)(param_6 + param_2 * 0x80);" (assignment_expression "pdVar30 = (double *)(param_6 + param_2 * 0x80)" (identifier "pdVar30") (= "=") (cast_expression "(double *)(param_6 + param_2 * 0x80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + param_2 * 0x80)" (( "(") (binary_expression "param_6 + param_2 * 0x80" (identifier "param_6") (+ "+") (binary_expression "param_2 * 0x80" (identifier "param_2") (* "*") (number_literal "0x80"))) () ")")))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);" (assignment_expression "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" (( "(") (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" (* "*") (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FormatLocaleFile_003a9544"))) () ")")) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ef0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x6ef0")) () ")")))) (; ";")) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar21") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "dVar46 = pdVar30[9];" (assignment_expression "dVar46 = pdVar30[9]" (identifier "dVar46") (= "=") (subscript_expression "pdVar30[9]" (identifier "pdVar30") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar26") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_a0 = pdVar30[10];" (assignment_expression "local_a0 = pdVar30[10]" (identifier "local_a0") (= "=") (subscript_expression "pdVar30[10]" (identifier "pdVar30") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" (identifier "local_a8") (= "=") (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar26,local_a8._4_4_)" (identifier "CONCAT44") (argument_list "(uVar26,local_a8._4_4_)" (( "(") (identifier "uVar26") (, ",") (field_expression "local_a8._4_4_" (identifier "local_a8") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" (identifier "local_b0") (= "=") (identifier "dVar46")) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);" (assignment_expression "iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" (( "(") (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" (* "*") (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FormatLocaleFile_003a9544"))) () ")")) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ee4" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x6ee4")) (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar21") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "dVar46 = pdVar30[0xb];" (assignment_expression "dVar46 = pdVar30[0xb]" (identifier "dVar46") (= "=") (subscript_expression "pdVar30[0xb]" (identifier "pdVar30") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar26") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_a0 = pdVar30[0xc];" (assignment_expression "local_a0 = pdVar30[0xc]" (identifier "local_a0") (= "=") (subscript_expression "pdVar30[0xc]" (identifier "pdVar30") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" (identifier "local_a8") (= "=") (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar26,local_a8._4_4_)" (identifier "CONCAT44") (argument_list "(uVar26,local_a8._4_4_)" (( "(") (identifier "uVar26") (, ",") (field_expression "local_a8._4_4_" (identifier "local_a8") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" (identifier "local_b0") (= "=") (identifier "dVar46")) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);" (assignment_expression "iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" (( "(") (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" (* "*") (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FormatLocaleFile_003a9544"))) () ")")) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6ec8" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x6ec8")) (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar21") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_b0 = pdVar30[0xd];" (assignment_expression "local_b0 = pdVar30[0xd]" (identifier "local_b0") (= "=") (subscript_expression "pdVar30[0xd]" (identifier "pdVar30") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);" (assignment_expression "iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" (( "(") (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" (* "*") (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FormatLocaleFile_003a9544"))) () ")")) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e98" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x6e98")) (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar21") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_b0 = pdVar30[0xe];" (assignment_expression "local_b0 = pdVar30[0xe]" (identifier "local_b0") (= "=") (subscript_expression "pdVar30[0xe]" (identifier "pdVar30") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);" (assignment_expression "iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" (( "(") (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" (* "*") (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FormatLocaleFile_003a9544"))) () ")")) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e7c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x6e7c")) (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar21") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "dVar46 = param_5 * pdVar30[0xf];" (assignment_expression "dVar46 = param_5 * pdVar30[0xf]" (identifier "dVar46") (= "=") (binary_expression "param_5 * pdVar30[0xf]" (identifier "param_5") (* "*") (subscript_expression "pdVar30[0xf]" (identifier "pdVar30") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar26") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_a0 = pdVar30[0xf];" (assignment_expression "local_a0 = pdVar30[0xf]" (identifier "local_a0") (= "=") (subscript_expression "pdVar30[0xf]" (identifier "pdVar30") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);" (assignment_expression "local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_)" (identifier "local_a8") (= "=") (cast_expression "(double)CONCAT44(uVar26,local_a8._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar26,local_a8._4_4_)" (identifier "CONCAT44") (argument_list "(uVar26,local_a8._4_4_)" (( "(") (identifier "uVar26") (, ",") (field_expression "local_a8._4_4_" (identifier "local_a8") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "local_b0 = dVar46;" (assignment_expression "local_b0 = dVar46" (identifier "local_b0") (= "=") (identifier "dVar46")) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);" (assignment_expression "iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)\n                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" (( "(") (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" (* "*") (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FormatLocaleFile_003a9544"))) () ")")) (argument_list "(param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e58" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x6e58")) (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;" (assignment_expression "uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9" (identifier "uVar36") (= "=") (binary_expression "iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9" (binary_expression "iVar4 + iVar5 + iVar6 + iVar7 + iVar8" (binary_expression "iVar4 + iVar5 + iVar6 + iVar7" (binary_expression "iVar4 + iVar5 + iVar6" (binary_expression "iVar4 + iVar5" (identifier "iVar4") (+ "+") (identifier "iVar5")) (+ "+") (identifier "iVar6")) (+ "+") (identifier "iVar7")) (+ "+") (identifier "iVar8")) (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;" (assignment_expression "puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30" (identifier "puVar34") (= "=") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x6e30" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x6e30"))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13 = &local_88;" (assignment_expression "puVar13 = &local_88" (identifier "puVar13") (= "=") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (; ";")) (do_statement "do {\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  } while (iVar5 != 8);" (do "do") (compound_statement "{\n    puVar39 = puVar13 + 1;\n    pdVar31 = pdVar30 + 1;\n    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    dVar47 = *pdVar30;\n    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);\n    dVar47 = dVar47 / dVar41;\n    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();\n    local_98 = *pdVar30;\n    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);\n    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);\n    iVar5 = iVar4 + 1;\n    dVar41 = (double)iVar4 + dVar46;\n    puVar32 = puVar34;\n    local_a8 = dVar47;\n    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);\n    uVar36 = uVar36 + iVar4;\n    pdVar30 = pdVar31;\n    iVar4 = iVar5;\n    puVar13 = puVar39;\n  }" ({ "{") (expression_statement "puVar39 = puVar13 + 1;" (assignment_expression "puVar39 = puVar13 + 1" (identifier "puVar39") (= "=") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pdVar31 = pdVar30 + 1;" (assignment_expression "pdVar31 = pdVar30 + 1" (identifier "pdVar31") (= "=") (binary_expression "pdVar30 + 1" (identifier "pdVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar21") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "dVar47 = *pdVar30;" (assignment_expression "dVar47 = *pdVar30" (identifier "dVar47") (= "=") (pointer_expression "*pdVar30" (* "*") (identifier "pdVar30"))) (; ";")) (expression_statement "dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);" (assignment_expression "dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" (identifier "dVar41") (= "=") (cast_expression "(double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_pow_003a971c)(param_5,*puVar13)" (parenthesized_expression "(*(code *)PTR_pow_003a971c)" (( "(") (pointer_expression "*(code *)PTR_pow_003a971c" (* "*") (cast_expression "(code *)PTR_pow_003a971c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pow_003a971c"))) () ")")) (argument_list "(param_5,*puVar13)" (( "(") (identifier "param_5") (, ",") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) () ")"))))) (; ";")) (expression_statement "dVar47 = dVar47 / dVar41;" (assignment_expression "dVar47 = dVar47 / dVar41" (identifier "dVar47") (= "=") (binary_expression "dVar47 / dVar41" (identifier "dVar47") (/ "/") (identifier "dVar41"))) (; ";")) (expression_statement "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();" (assignment_expression "uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)()" (identifier "uVar26") (= "=") (call_expression "(*(code *)PTR_GetMagickPrecision_003a992c)()" (parenthesized_expression "(*(code *)PTR_GetMagickPrecision_003a992c)" (( "(") (pointer_expression "*(code *)PTR_GetMagickPrecision_003a992c" (* "*") (cast_expression "(code *)PTR_GetMagickPrecision_003a992c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickPrecision_003a992c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_98 = *pdVar30;" (assignment_expression "local_98 = *pdVar30" (identifier "local_98") (= "=") (pointer_expression "*pdVar30" (* "*") (identifier "pdVar30"))) (; ";")) (expression_statement "local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);" (assignment_expression "local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_)" (identifier "local_a0") (= "=") (cast_expression "(double)CONCAT44(uVar26,local_a0._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar26,local_a0._4_4_)" (identifier "CONCAT44") (argument_list "(uVar26,local_a0._4_4_)" (( "(") (identifier "uVar26") (, ",") (field_expression "local_a0._4_4_" (identifier "local_a0") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);" (assignment_expression "local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_)" (identifier "local_b0") (= "=") (cast_expression "(double)CONCAT44(uVar21,local_b0._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar21,local_b0._4_4_)" (identifier "CONCAT44") (argument_list "(uVar21,local_b0._4_4_)" (( "(") (identifier "uVar21") (, ",") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "iVar5 = iVar4 + 1;" (assignment_expression "iVar5 = iVar4 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "dVar41 = (double)iVar4 + dVar46;" (assignment_expression "dVar41 = (double)iVar4 + dVar46" (identifier "dVar41") (= "=") (binary_expression "(double)iVar4 + dVar46" (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4")) (+ "+") (identifier "dVar46"))) (; ";")) (expression_statement "puVar32 = puVar34;" (assignment_expression "puVar32 = puVar34" (identifier "puVar32") (= "=") (identifier "puVar34")) (; ";")) (expression_statement "local_a8 = dVar47;" (assignment_expression "local_a8 = dVar47" (identifier "local_a8") (= "=") (identifier "dVar47")) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);" (assignment_expression "iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_FormatLocaleFile_003a9544)(param_1)" (parenthesized_expression "(*(code *)PTR_FormatLocaleFile_003a9544)" (( "(") (pointer_expression "*(code *)PTR_FormatLocaleFile_003a9544" (* "*") (cast_expression "(code *)PTR_FormatLocaleFile_003a9544" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FormatLocaleFile_003a9544"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar36 = uVar36 + iVar4;" (assignment_expression "uVar36 = uVar36 + iVar4" (identifier "uVar36") (= "=") (binary_expression "uVar36 + iVar4" (identifier "uVar36") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "pdVar30 = pdVar31;" (assignment_expression "pdVar30 = pdVar31" (identifier "pdVar30") (= "=") (identifier "pdVar31")) (; ";")) (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" (identifier "iVar4") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "puVar13 = puVar39;" (assignment_expression "puVar13 = puVar39" (identifier "puVar13") (= "=") (identifier "puVar39")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 8)" (( "(") (binary_expression "iVar5 != 8" (identifier "iVar5") (!= "!=") (number_literal "8")) () ")")) (; ";")) (if_statement "if (local_44 == *(int **)puVar12) {\n    return uVar36;\n  }" (if "if") (parenthesized_expression "(local_44 == *(int **)puVar12)" (( "(") (binary_expression "local_44 == *(int **)puVar12" (identifier "local_44") (== "==") (pointer_expression "*(int **)puVar12" (* "*") (cast_expression "(int **)puVar12" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar12")))) () ")")) (compound_statement "{\n    return uVar36;\n  }" ({ "{") (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}"))) (expression_statement "pcVar40 = IdentifyImage;" (assignment_expression "pcVar40 = IdentifyImage" (identifier "pcVar40") (= "=") (identifier "IdentifyImage")) (; ";")) (expression_statement "piVar22 = local_44;" (assignment_expression "piVar22 = local_44" (identifier "piVar22") (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar38 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar38 = PTR___stack_chk_fail_003a9064" (identifier "puVar38") (= "=") (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 "uVar26 = SUB84(dVar41,0);" (assignment_expression "uVar26 = SUB84(dVar41,0)" (identifier "uVar26") (= "=") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "piVar10 = *(int **)(puVar38 + 0x2b971c);" (assignment_expression "piVar10 = *(int **)(puVar38 + 0x2b971c)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(puVar38 + 0x2b971c)" (* "*") (cast_expression "(int **)(puVar38 + 0x2b971c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b971c)" (( "(") (binary_expression "puVar38 + 0x2b971c" (identifier "puVar38") (+ "+") (number_literal "0x2b971c")) () ")"))))) (; ";")) (expression_statement "puStack_f0 = puVar12;" (assignment_expression "puStack_f0 = puVar12" (identifier "puStack_f0") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "uStack_f4 = 8;" (assignment_expression "uStack_f4 = 8" (identifier "uStack_f4") (= "=") (number_literal "8")) (; ";")) (expression_statement "iStack_10c = *piVar10;" (assignment_expression "iStack_10c = *piVar10" (identifier "iStack_10c") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "pdStack_108 = pdVar31;" (assignment_expression "pdStack_108 = pdVar31" (identifier "pdStack_108") (= "=") (identifier "pdVar31")) (; ";")) (expression_statement "iStack_104 = iVar5;" (assignment_expression "iStack_104 = iVar5" (identifier "iStack_104") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "puStack_100 = puVar39;" (assignment_expression "puStack_100 = puVar39" (identifier "puStack_100") (= "=") (identifier "puVar39")) (; ";")) (expression_statement "uStack_fc = param_1;" (assignment_expression "uStack_fc = param_1" (identifier "uStack_fc") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_f8 = puVar34;" (assignment_expression "puStack_f8 = puVar34" (identifier "puStack_f8") (= "=") (identifier "puVar34")) (; ";")) (expression_statement "uStack_ec = uVar36;" (assignment_expression "uStack_ec = uVar36" (identifier "uStack_ec") (= "=") (identifier "uVar36")) (; ";")) (expression_statement "uStack_e8 = uVar21;" (assignment_expression "uStack_e8 = uVar21" (identifier "uStack_e8") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "pcStack_e4 = pcVar40;" (assignment_expression "pcStack_e4 = pcVar40" (identifier "pcStack_e4") (= "=") (identifier "pcVar40")) (; ";")) (expression_statement "dStack_e0 = dVar47;" (assignment_expression "dStack_e0 = dVar47" (identifier "dStack_e0") (= "=") (identifier "dVar47")) (; ";")) (expression_statement "dStack_d8 = param_5;" (assignment_expression "dStack_d8 = param_5" (identifier "dStack_d8") (= "=") (identifier "param_5")) (; ";")) (expression_statement "dStack_d0 = dVar46;" (assignment_expression "dStack_d0 = dVar46" (identifier "dStack_d0") (= "=") (identifier "dVar46")) (; ";")) (if_statement "if (piVar22 == (int *)0x0) goto LAB_000f38b4;" (if "if") (parenthesized_expression "(piVar22 == (int *)0x0)" (( "(") (binary_expression "piVar22 == (int *)0x0" (identifier "piVar22") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000f38b4;" (goto "goto") (statement_identifier "LAB_000f38b4") (; ";"))) (if_statement "if (piVar22[0xcdb] != -0x54535255) {\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" (if "if") (parenthesized_expression "(piVar22[0xcdb] != -0x54535255)" (( "(") (binary_expression "piVar22[0xcdb] != -0x54535255" (subscript_expression "piVar22[0xcdb]" (identifier "piVar22") ([ "[") (number_literal "0xcdb") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    uVar21 = 0x213;\n    pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;\n    goto LAB_000f38e8;\n  }" ({ "{") (expression_statement "uVar21 = 0x213;" (assignment_expression "uVar21 = 0x213" (identifier "uVar21") (= "=") (number_literal "0x213")) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9af4);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9af4)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9af4)" (( "(") (binary_expression "puVar38 + 0x2b9af4" (identifier "puVar38") (+ "+") (number_literal "0x2b9af4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" (identifier "iVar4") (= "=") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5b7c"))) (; ";")) (goto_statement "goto LAB_000f38e8;" (goto "goto") (statement_identifier "LAB_000f38e8") (; ";")) (} "}"))) (if_statement "if (piVar22[0xcd4] == 0) {\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }\n  else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" (if "if") (parenthesized_expression "(piVar22[0xcd4] == 0)" (( "(") (binary_expression "piVar22[0xcd4] == 0" (subscript_expression "piVar22[0xcd4]" (identifier "piVar22") ([ "[") (number_literal "0xcd4") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n    if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }\n  }" ({ "{") (expression_statement "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);" (assignment_expression "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(puVar38 + 0x2b93d0)" (* "*") (cast_expression "(undefined4 **)(puVar38 + 0x2b93d0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93d0)" (( "(") (binary_expression "puVar38 + 0x2b93d0" (identifier "puVar38") (+ "+") (number_literal "0x2b93d0")) () ")"))))) (; ";")) (if_statement "if (puVar32 == (undefined *)0x0) {\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }" (if "if") (parenthesized_expression "(puVar32 == (undefined *)0x0)" (( "(") (binary_expression "puVar32 == (undefined *)0x0" (identifier "puVar32") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000efed0:\n      puVar32 = (undefined *)*puVar11;\n    }" ({ "{") (labeled_statement "LAB_000efed0:\n      puVar32 = (undefined *)*puVar11;" (statement_identifier "LAB_000efed0") (: ":") (expression_statement "puVar32 = (undefined *)*puVar11;" (assignment_expression "puVar32 = (undefined *)*puVar11" (identifier "puVar32") (= "=") (cast_expression "(undefined *)*puVar11" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);\n    if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);" (call_expression "(**(code **)(puVar38 + 0x2b96cc))\n              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96cc))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b96cc)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b96cc)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b96cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b96cc)" (( "(") (binary_expression "puVar38 + 0x2b96cc" (identifier "puVar38") (+ "+") (number_literal "0x2b96cc")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,\n               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6b00")) (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5b8c")) (, ",") (number_literal "0x215") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "piVar22 + 0xd0" (identifier "piVar22") (+ "+") (number_literal "0xd0")) () ")"))) (; ";")) (if_statement "if (puVar32 == (undefined *)0x0) {\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" (if "if") (parenthesized_expression "(puVar32 == (undefined *)0x0)" (( "(") (binary_expression "puVar32 == (undefined *)0x0" (identifier "puVar32") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);\n      goto LAB_000efed0;\n    }" ({ "{") (expression_statement "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);" (assignment_expression "puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(puVar38 + 0x2b93d0)" (* "*") (cast_expression "(undefined4 **)(puVar38 + 0x2b93d0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93d0)" (( "(") (binary_expression "puVar38 + 0x2b93d0" (identifier "puVar38") (+ "+") (number_literal "0x2b93d0")) () ")"))))) (; ";")) (goto_statement "goto LAB_000efed0;" (goto "goto") (statement_identifier "LAB_000efed0") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar36 = piVar22[1];" (assignment_expression "uVar36 = piVar22[1]" (identifier "uVar36") (= "=") (subscript_expression "piVar22[1]" (identifier "piVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99ac)" (( "(") (binary_expression "puVar38 + 0x2b99ac" (identifier "puVar38") (+ "+") (number_literal "0x2b99ac")) () ")"))))) () ")")) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8)" (( "(") (identifier "piVar22") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6ae8")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }\n  else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar16 = piVar22 + 0xbc;\n    auStack_310d[1] = 0;\n    piVar24 = piVar22 + 0xd0;\n    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);\n    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);\n    (**(code **)(puVar38 + 0x2b9b54))(piVar16);\n    puVar12 = puVar32;\n    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n  }" ({ "{") (expression_statement "piVar16 = piVar22 + 0xbc;" (assignment_expression "piVar16 = piVar22 + 0xbc" (identifier "piVar16") (= "=") (binary_expression "piVar22 + 0xbc" (identifier "piVar22") (+ "+") (number_literal "0xbc"))) (; ";")) (expression_statement "auStack_310d[1] = 0;" (assignment_expression "auStack_310d[1] = 0" (subscript_expression "auStack_310d[1]" (identifier "auStack_310d") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar24 = piVar22 + 0xd0;" (assignment_expression "piVar24 = piVar22 + 0xd0" (identifier "piVar24") (= "=") (binary_expression "piVar22 + 0xd0" (identifier "piVar22") (+ "+") (number_literal "0xd0"))) (; ";")) (expression_statement "dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);" (assignment_expression "dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16)" (identifier "dVar46") (= "=") (cast_expression "(double)(**(code **)(puVar38 + 0x2b97e4))(piVar16)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar38 + 0x2b97e4))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97e4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b97e4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b97e4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b97e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b97e4)" (( "(") (binary_expression "puVar38 + 0x2b97e4" (identifier "puVar38") (+ "+") (number_literal "0x2b97e4")) () ")"))))) () ")")) (argument_list "(piVar16)" (( "(") (identifier "piVar16") () ")"))))) (; ";")) (expression_statement "uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);" (assignment_expression "uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16)" (identifier "uVar42") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9474))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9474))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9474)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9474)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9474)" (( "(") (binary_expression "puVar38 + 0x2b9474" (identifier "puVar38") (+ "+") (number_literal "0x2b9474")) () ")"))))) () ")")) (argument_list "(piVar16)" (( "(") (identifier "piVar16") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9b54))(piVar16);" (call_expression "(**(code **)(puVar38 + 0x2b9b54))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b54))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b54)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b54)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b54)" (( "(") (binary_expression "puVar38 + 0x2b9b54" (identifier "puVar38") (+ "+") (number_literal "0x2b9b54")) () ")"))))) () ")")) (argument_list "(piVar16)" (( "(") (identifier "piVar16") () ")"))) (; ";")) (expression_statement "puVar12 = puVar32;" (assignment_expression "puVar12 = puVar32" (identifier "puVar12") (= "=") (identifier "puVar32")) (; ";")) (if_statement "if ((int)((ulonglong)dVar41 >> 0x20) == 0) {\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }\n    else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" (if "if") (parenthesized_expression "((int)((ulonglong)dVar41 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)dVar41 >> 0x20) == 0" (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }\n      iVar4 = (*pcVar40)(piVar22);\n      iVar5 = piVar22[0x9b];\n      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);\n      iVar7 = piVar22[0xcd0];\n      iVar5 = piVar22[0xcd1];\n      iVar6 = piVar22[6];\n      if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }\n      dVar41 = (double)iVar6;\n      if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)iVar5;\n      if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);\n      iVar6 = piVar22[0x8a];\n      iVar5 = piVar22[0x8b];\n      if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }\n      dVar41 = (double)piVar22[8];\n      if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));\n      if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }\n      uVar36 = piVar22[0xa0];\n      if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }\n      if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }\n      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" ({ "{") (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9198);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9198)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9198)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9198)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9198)" (( "(") (binary_expression "puVar38 + 0x2b9198" (identifier "puVar38") (+ "+") (number_literal "0x2b9198")) () ")"))))) (; ";")) (if_statement "if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }" (if "if") (parenthesized_expression "(*(char *)(piVar22 + 0x4d0) != '\0')" (( "(") (binary_expression "*(char *)(piVar22 + 0x4d0) != '\0'" (pointer_expression "*(char *)(piVar22 + 0x4d0)" (* "*") (cast_expression "(char *)(piVar22 + 0x4d0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x4d0)" (( "(") (binary_expression "piVar22 + 0x4d0" (identifier "piVar22") (+ "+") (number_literal "0x4d0")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b9198);\n      }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b95fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b95fc)" (( "(") (binary_expression "puVar38 + 0x2b95fc" (identifier "puVar38") (+ "+") (number_literal "0x2b95fc")) () ")"))))) () ")")) (argument_list "(piVar22 + 0x4d0,piVar24)" (( "(") (binary_expression "piVar22 + 0x4d0" (identifier "piVar22") (+ "+") (number_literal "0x4d0")) (, ",") (identifier "piVar24") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6aa8")) (, ",") (binary_expression "piVar22 + 0x4d0" (identifier "piVar22") (+ "+") (number_literal "0x4d0")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9198);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9198)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9198)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9198)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9198)" (( "(") (binary_expression "puVar38 + 0x2b9198" (identifier "puVar38") (+ "+") (number_literal "0x2b9198")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar4 = (*pcVar40)(piVar22);" (assignment_expression "iVar4 = (*pcVar40)(piVar22)" (identifier "iVar4") (= "=") (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (expression_statement "iVar5 = piVar22[0x9b];" (assignment_expression "iVar5 = piVar22[0x9b]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0x9b]" (identifier "piVar22") ([ "[") (number_literal "0x9b") (] "]"))) (; ";")) (if_statement "if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)) {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }\n      else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" (if "if") (parenthesized_expression "(((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0))" (( "(") (binary_expression "((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&\n         (iVar5 == 0)" (parenthesized_expression "((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0))" (( "(") (binary_expression "(iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)" (( "(") (comma_expression "iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b995c))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b995c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b995c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b995c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b995c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b995c)" (( "(") (binary_expression "puVar38 + 0x2b995c" (identifier "puVar38") (+ "+") (number_literal "0x2b995c")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);\n      }" ({ "{") (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8e38)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar4 + 0x30e8,piVar24)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar4 + 0x30e8" (identifier "iVar4") (+ "+") (number_literal "0x30e8")) (, ",") (identifier "piVar24") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" (else "else") (compound_statement "{\n        iVar4 = *(int *)(puVar38 + 0x2b8e38);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);\n      }" ({ "{") (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8e38)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6aa0")) (, ",") (identifier "piVar24") () ")"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar4 + 0x30e8" (identifier "iVar4") (+ "+") (number_literal "0x30e8")) (, ",") (binary_expression "piVar22 + 0x8d0" (identifier "piVar22") (+ "+") (number_literal "0x8d0")) () ")"))) (; ";")) (expression_statement "iVar7 = piVar22[0xcd0];" (assignment_expression "iVar7 = piVar22[0xcd0]" (identifier "iVar7") (= "=") (subscript_expression "piVar22[0xcd0]" (identifier "piVar22") ([ "[") (number_literal "0xcd0") (] "]"))) (; ";")) (expression_statement "iVar5 = piVar22[0xcd1];" (assignment_expression "iVar5 = piVar22[0xcd1]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xcd1]" (identifier "piVar22") ([ "[") (number_literal "0xcd1") (] "]"))) (; ";")) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" (identifier "iVar6") (= "=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if ((iVar7 == 0) && (iVar5 == 0)) {\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }\n      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" (if "if") (parenthesized_expression "((iVar7 == 0) && (iVar5 == 0))" (( "(") (binary_expression "(iVar7 == 0) && (iVar5 == 0)" (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_000f0044:\n        iVar5 = piVar22[7];\n      }" ({ "{") (labeled_statement "LAB_000f0044:\n        iVar5 = piVar22[7];" (statement_identifier "LAB_000f0044") (: ":") (expression_statement "iVar5 = piVar22[7];" (assignment_expression "iVar5 = piVar22[7]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]"))) (; ";"))) (} "}")) (else_clause "else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" (else "else") (if_statement "if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" (if "if") (parenthesized_expression "((iVar7 != iVar6) || (piVar22[7] != iVar5))" (( "(") (binary_expression "(iVar7 != iVar6) || (piVar22[7] != iVar5)" (parenthesized_expression "(iVar7 != iVar6)" (( "(") (binary_expression "iVar7 != iVar6" (identifier "iVar7") (!= "!=") (identifier "iVar6")) () ")")) (|| "||") (parenthesized_expression "(piVar22[7] != iVar5)" (( "(") (binary_expression "piVar22[7] != iVar5" (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")) (!= "!=") (identifier "iVar5")) () ")"))) () ")")) (compound_statement "{\n        dVar41 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n        iVar6 = piVar22[6];\n        goto LAB_000f0044;\n      }" ({ "{") (expression_statement "dVar41 = (double)iVar7;" (assignment_expression "dVar41 = (double)iVar7" (identifier "dVar41") (= "=") (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7"))) (; ";")) (if_statement "if (iVar7 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" (identifier "dVar47") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a94" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a94")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") () ")"))) (; ";")) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" (identifier "iVar6") (= "=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (; ";")) (goto_statement "goto LAB_000f0044;" (goto "goto") (statement_identifier "LAB_000f0044") (; ";")) (} "}"))))) (expression_statement "dVar41 = (double)iVar6;" (assignment_expression "dVar41 = (double)iVar6" (identifier "dVar41") (= "=") (cast_expression "(double)iVar6" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar6"))) (; ";")) (if_statement "if (iVar6 < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" (identifier "dVar47") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a84" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a84")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") () ")"))) (; ";")) (expression_statement "iVar6 = piVar22[0x8a];" (assignment_expression "iVar6 = piVar22[0x8a]" (identifier "iVar6") (= "=") (subscript_expression "piVar22[0x8a]" (identifier "piVar22") ([ "[") (number_literal "0x8a") (] "]"))) (; ";")) (expression_statement "iVar5 = piVar22[0x8b];" (assignment_expression "iVar5 = piVar22[0x8b]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0x8b]" (identifier "piVar22") ([ "[") (number_literal "0x8b") (] "]"))) (; ";")) (if_statement "if (iVar6 == 0) {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }\n      else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n        if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }\n      }" ({ "{") (expression_statement "iVar7 = piVar22[0x8c];" (assignment_expression "iVar7 = piVar22[0x8c]" (identifier "iVar7") (= "=") (subscript_expression "piVar22[0x8c]" (identifier "piVar22") ([ "[") (number_literal "0x8c") (] "]"))) (; ";")) (expression_statement "iVar8 = piVar22[0x8d];" (assignment_expression "iVar8 = piVar22[0x8d]" (identifier "iVar8") (= "=") (subscript_expression "piVar22[0x8d]" (identifier "piVar22") ([ "[") (number_literal "0x8d") (] "]"))) (; ";")) (if_statement "if ((iVar5 != 0) || (iVar7 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" (if "if") (parenthesized_expression "((iVar5 != 0) || (iVar7 != 0))" (( "(") (binary_expression "(iVar5 != 0) || (iVar7 != 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" ({ "{") (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" (identifier "dVar41") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000f00d4;" (goto "goto") (statement_identifier "LAB_000f00d4") (; ";")) (} "}"))) (if_statement "if (iVar8 != 0) {\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f00d4;\n        }" ({ "{") (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" (identifier "dVar41") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000f00d4;" (goto "goto") (statement_identifier "LAB_000f00d4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" (else "else") (compound_statement "{\n        iVar7 = piVar22[0x8c];\n        iVar8 = piVar22[0x8d];\n        dVar41 = (double)iVar6;\n        if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f00d4:\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);\n      }" ({ "{") (expression_statement "iVar7 = piVar22[0x8c];" (assignment_expression "iVar7 = piVar22[0x8c]" (identifier "iVar7") (= "=") (subscript_expression "piVar22[0x8c]" (identifier "piVar22") ([ "[") (number_literal "0x8c") (] "]"))) (; ";")) (expression_statement "iVar8 = piVar22[0x8d];" (assignment_expression "iVar8 = piVar22[0x8d]" (identifier "iVar8") (= "=") (subscript_expression "piVar22[0x8d]" (identifier "piVar22") ([ "[") (number_literal "0x8d") (] "]"))) (; ";")) (expression_statement "dVar41 = (double)iVar6;" (assignment_expression "dVar41 = (double)iVar6" (identifier "dVar41") (= "=") (cast_expression "(double)iVar6" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar6"))) (; ";")) (if_statement "if (iVar6 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (labeled_statement "LAB_000f00d4:\n        dVar47 = (double)iVar5;" (statement_identifier "LAB_000f00d4") (: ":") (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" (identifier "dVar47") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";"))) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a74" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a74")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") (, ",") (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7")) (, ",") (cast_expression "(double)iVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar8")) () ")"))) (; ";")) (} "}")))) (expression_statement "dVar41 = (double)piVar22[8];" (assignment_expression "dVar41 = (double)piVar22[8]" (identifier "dVar41") (= "=") (cast_expression "(double)piVar22[8]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[8]" (identifier "piVar22") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if (piVar22[8] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" (if "if") (parenthesized_expression "(piVar22[8] < 0)" (( "(") (binary_expression "piVar22[8] < 0" (subscript_expression "piVar22[8]" (identifier "piVar22") ([ "[") (number_literal "8") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a58" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a58")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (if_statement "if (piVar22[0xa8] != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" (if "if") (parenthesized_expression "(piVar22[0xa8] != 0)" (( "(") (binary_expression "piVar22[0xa8] != 0" (subscript_expression "piVar22[0xa8]" (identifier "piVar22") ([ "[") (number_literal "0xa8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0x49)" (( "(") (number_literal "0x49") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar4 + 0x30e8,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar4 + 0x30e8" (identifier "iVar4") (+ "+") (number_literal "0x30e8")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar36 != 0) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" (if "if") (parenthesized_expression "(uVar36 != 0)" (( "(") (binary_expression "uVar36 != 0" (identifier "uVar36") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);\n      }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(9,uVar36)" (( "(") (number_literal "9") (, ",") (identifier "uVar36") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar4 + 0x30e8,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar4 + 0x30e8" (identifier "iVar4") (+ "+") (number_literal "0x30e8")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar36 = piVar22[0xa0];" (assignment_expression "uVar36 = piVar22[0xa0]" (identifier "uVar36") (= "=") (subscript_expression "piVar22[0xa0]" (identifier "piVar22") ([ "[") (number_literal "0xa0") (] "]"))) (; ";")) (if_statement "if (*piVar22 == 1) {\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }\n      else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" (if "if") (parenthesized_expression "(*piVar22 == 1)" (( "(") (binary_expression "*piVar22 == 1" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }\n      }" ({ "{") (if_statement "if (uVar36 != 0) {\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }" (if "if") (parenthesized_expression "(uVar36 != 0)" (( "(") (binary_expression "uVar36 != 0" (identifier "uVar36") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9588)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9588)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9588)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9588)" (( "(") (binary_expression "puVar38 + 0x2b9588" (identifier "puVar38") (+ "+") (number_literal "0x2b9588")) () ")"))))) () ")")) (argument_list "(0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1)" (( "(") (number_literal "0") (, ",") (identifier "uVar36") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")")))) (+ "+") (number_literal "0x1b28")) (, ",") (number_literal "0x1000") (, ",") (binary_expression "auStack_310d + 1" (identifier "auStack_310d") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar4 + 0x30e8" (identifier "iVar4") (+ "+") (number_literal "0x30e8")) (, ",") (binary_expression "auStack_310d + 1" (identifier "auStack_310d") (+ "+") (number_literal "1")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" (else "else") (compound_statement "{\n        uVar14 = piVar22[9];\n        dVar41 = (double)(int)uVar14;\n        if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n      }" ({ "{") (expression_statement "uVar14 = piVar22[9];" (assignment_expression "uVar14 = piVar22[9]" (identifier "uVar14") (= "=") (subscript_expression "piVar22[9]" (identifier "piVar22") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "dVar41 = (double)(int)uVar14;" (assignment_expression "dVar41 = (double)(int)uVar14" (identifier "dVar41") (= "=") (cast_expression "(double)(int)uVar14" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if ((int)uVar14 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "((int)uVar14 < 0)" (( "(") (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (uVar14 < uVar36) {\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }\n        else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" (if "if") (parenthesized_expression "(uVar14 < uVar36)" (( "(") (binary_expression "uVar14 < uVar36" (identifier "uVar14") (< "<") (identifier "uVar36")) () ")")) (compound_statement "{\n          dVar47 = (double)(int)uVar36;\n          if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n        }" ({ "{") (expression_statement "dVar47 = (double)(int)uVar36;" (assignment_expression "dVar47 = (double)(int)uVar36" (identifier "dVar47") (= "=") (cast_expression "(double)(int)uVar36" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar36")))) (; ";")) (if_statement "if ((int)uVar36 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" (if "if") (parenthesized_expression "((int)uVar36 < 0)" (( "(") (binary_expression "(int)uVar36 < 0" (cast_expression "(int)uVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar36")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a44" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a44")) (, ",") (cast_expression "(int)((ulonglong)dVar47 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar47 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar47 >> 0x20" (cast_expression "(ulonglong)dVar47" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar47")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar47,0)" (identifier "SUB84") (argument_list "(dVar47,0)" (( "(") (identifier "dVar47") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar41") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" (else "else") (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a4c")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (*(double *)(piVar22 + 0xb6) != 0.0) {\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }" (if "if") (parenthesized_expression "(*(double *)(piVar22 + 0xb6) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0xb6) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xb6)" (* "*") (cast_expression "(double *)(piVar22 + 0xb6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0xb6)" (( "(") (binary_expression "piVar22 + 0xb6" (identifier "piVar22") (+ "+") (number_literal "0xb6")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));\n      }" ({ "{") (expression_statement "dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);" (assignment_expression "dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (identifier "dVar41") (= "=") (binary_expression "*(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (pointer_expression "*(double *)(piVar22 + 0xb6)" (* "*") (cast_expression "(double *)(piVar22 + 0xb6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0xb6)" (( "(") (binary_expression "piVar22 + 0xb6" (identifier "piVar22") (+ "+") (number_literal "0xb6")) () ")")))) (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a34" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a34")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (pointer_expression "*(undefined8 *)(piVar22 + 0xb8)" (* "*") (cast_expression "(undefined8 *)(piVar22 + 0xb8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0xb8)" (( "(") (binary_expression "piVar22 + 0xb8" (identifier "piVar22") (+ "+") (number_literal "0xb8")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(piVar22 + 0xba)" (* "*") (cast_expression "(undefined8 *)(piVar22 + 0xba)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0xba)" (( "(") (binary_expression "piVar22 + 0xba" (identifier "piVar22") (+ "+") (number_literal "0xba")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (if_statement "if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }" (if "if") (parenthesized_expression "(piVar22[0xaa] != 0 || piVar22[0xab] != 0)" (( "(") (binary_expression "piVar22[0xaa] != 0 || piVar22[0xab] != 0" (binary_expression "piVar22[0xaa] != 0" (subscript_expression "piVar22[0xaa]" (identifier "piVar22") ([ "[") (number_literal "0xaa") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "piVar22[0xab] != 0" (subscript_expression "piVar22[0xab]" (identifier "piVar22") ([ "[") (number_literal "0xab") (] "]")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9588)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9588)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9588)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9588)" (( "(") (binary_expression "puVar38 + 0x2b9588" (identifier "puVar38") (+ "+") (number_literal "0x2b9588")) () ")"))))) () ")")) (argument_list "(piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,\n                   auStack_310d + 1)" (( "(") (subscript_expression "piVar22[0xaa]" (identifier "piVar22") ([ "[") (number_literal "0xaa") (] "]")) (, ",") (subscript_expression "piVar22[0xab]" (identifier "piVar22") ([ "[") (number_literal "0xab") (] "]")) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")")))) (+ "+") (number_literal "0x1b28")) (, ",") (number_literal "0x1000") (, ",") (binary_expression "auStack_310d + 1" (identifier "auStack_310d") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar4 + 0x30e8,auStack_310d + 1)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar4 + 0x30e8" (identifier "iVar4") (+ "+") (number_literal "0x30e8")) (, ",") (binary_expression "auStack_310d + 1" (identifier "auStack_310d") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));" (assignment_expression "uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (identifier "uVar45") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ea4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ea4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ea4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ea4)" (( "(") (binary_expression "puVar38 + 0x2b9ea4" (identifier "puVar38") (+ "+") (number_literal "0x2b9ea4")) () ")"))))) () ")")) (argument_list "(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (( "(") (identifier "dVar46") (, ",") (pointer_expression "*(undefined8 *)(iVar5 + 0x7ba0)" (* "*") (cast_expression "(undefined8 *)(iVar5 + 0x7ba0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7ba0)" (( "(") (binary_expression "iVar5 + 0x7ba0" (identifier "iVar5") (+ "+") (number_literal "0x7ba0")) () ")")))) () ")")))) (; ";")) (expression_statement "dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);" (assignment_expression "dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" (identifier "dVar41") (= "=") (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(uVar45)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b5c)" (( "(") (binary_expression "puVar38 + 0x2b9b5c" (identifier "puVar38") (+ "+") (number_literal "0x2b9b5c")) () ")"))))) () ")")) (argument_list "(uVar45)" (( "(") (identifier "uVar45") () ")"))))) (; ";")) (expression_statement "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);" (assignment_expression "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (identifier "dVar47") (= "=") (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b5c)" (( "(") (binary_expression "puVar38 + 0x2b9b5c" (identifier "puVar38") (+ "+") (number_literal "0x2b9b5c")) () ")"))))) () ")")) (argument_list "(dVar46)" (( "(") (identifier "dVar46") () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dcc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")"))))) (; ";")) (expression_statement "dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (identifier "dVar47") (= "=") (binary_expression "(dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar46 - dVar47)" (( "(") (binary_expression "dVar46 - dVar47" (identifier "dVar46") (- "-") (identifier "dVar47")) () ")")) (* "*") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")")))) (+ "+") (number_literal "-0x1680")) () ")")))))) (; ";")) (if_statement "if (dVar47 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar47;\n      }\n      else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar47 < *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar47 < *(double *)(iVar4 + 0x1410)" (identifier "dVar47") (< "<") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar36 = (uint)dVar47;\n      }" ({ "{") (expression_statement "uVar36 = (uint)dVar47;" (assignment_expression "uVar36 = (uint)dVar47" (identifier "uVar36") (= "=") (cast_expression "(uint)dVar47" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar47"))) (; ";")) (} "}")) (else_clause "else {\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (identifier "uVar36") (= "=") (binary_expression "(int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar47 - *(double *)(iVar4 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar47 - *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar47 - *(double *)(iVar4 + 0x1410)" (identifier "dVar47") (- "-") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" (identifier "dVar41") (< "<") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar14 = (uint)dVar41;\n      }" ({ "{") (expression_statement "uVar14 = (uint)dVar41;" (assignment_expression "uVar14 = (uint)dVar41" (identifier "uVar14") (= "=") (cast_expression "(uint)dVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar41"))) (; ";")) (} "}")) (else_clause "else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (identifier "uVar14") (= "=") (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" (identifier "dVar41") (- "-") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);" (assignment_expression "dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0)" (identifier "dVar46") (= "=") (binary_expression "dVar46 / *(double *)(iVar5 + 0x7ba0)" (identifier "dVar46") (/ "/") (pointer_expression "*(double *)(iVar5 + 0x7ba0)" (* "*") (cast_expression "(double *)(iVar5 + 0x7ba0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7ba0)" (( "(") (binary_expression "iVar5 + 0x7ba0" (identifier "iVar5") (+ "+") (number_literal "0x7ba0")) () ")")))))) (; ";")) (if_statement "if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar46 < *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar46 < *(double *)(iVar4 + 0x1410)" (identifier "dVar46") (< "<") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar15 = (uint)dVar46;\n      }" ({ "{") (expression_statement "uVar15 = (uint)dVar46;" (assignment_expression "uVar15 = (uint)dVar46" (identifier "uVar15") (= "=") (cast_expression "(uint)dVar46" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar46"))) (; ";")) (} "}")) (else_clause "else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (identifier "uVar15") (= "=") (binary_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar46 - *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar46 - *(double *)(iVar4 + 0x1410)" (identifier "dVar46") (- "-") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42,uVar15,uVar14,uVar36)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a24" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a24")) (, ",") (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar42")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)uVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar42")) (, ",") (identifier "uVar15") (, ",") (identifier "uVar14") (, ",") (identifier "uVar36") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd8)" (( "(") (binary_expression "puVar38 + 0x2b8dd8" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd8")) () ")")))) (+ "+") (number_literal "-0x4bdc")) () ")"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9978);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9978)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9978)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9978)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9978)" (( "(") (binary_expression "puVar38 + 0x2b9978" (identifier "puVar38") (+ "+") (number_literal "0x2b9978")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" (else "else") (compound_statement "{\n      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);\n      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);\n      if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }\n      piVar24 = piVar22 + 0x8d0;\n      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);\n      if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);\n      dVar41 = (double)piVar22[6];\n      if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      dVar47 = (double)piVar22[7];\n      if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);\n      iVar9 = piVar22[0xcd0];\n      iVar8 = piVar22[0xcd1];\n      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);\n      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);\n      if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);\n      if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }\n      if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }\n      if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }\n      if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }\n      if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }\n      if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }\n      if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }\n      pdStack_4198 = (double *)auStack_210c;\n      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }\n      if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }\n      pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);\n      if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }\n      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }\n      iVar5 = piVar22[0x8e];\n      iVar4 = piVar22[0x8f];\n      if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;\n      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);\n      iVar5 = piVar22[0x8a];\n      iVar4 = piVar22[0x8b];\n      if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }\n      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);\n      iVar4 = piVar22[0x9c];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }\n      iVar4 = piVar22[0x9f];\n      if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9d];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      iVar4 = piVar22[0x9b];\n      if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      uVar21 = (*pcVar40)(0xe,piVar22[2]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);\n      iVar4 = piVar22[3];\n      if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);\n      if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }\n      if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }\n      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);\n      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }\n      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);\n      if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);\n      if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }\n      (**(code **)(puVar38 + 0x2b9378))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);\n      if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9180))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b99e8))(piVar22);\n      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }\n      (**(code **)(puVar38 + 0x2b9d50))();\n      iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n      if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }\n      puVar33 = auStack_310d + 1;\n      iVar4 = *(int *)(puVar38 + 0x2b8dd8);\n      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);\n      (**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);\n      (**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);\n      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);\n      if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);\n      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }\n      iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);\n      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));\n      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);\n      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);\n      iVar4 = *(int *)(puVar38 + 0x2b8dcc);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);\n      if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);\n      if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }\n      (**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);\n      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);\n      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);\n      pcVar40 = *(code **)(puVar38 + 0x2b9978);\n    }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9c50))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9c50)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9c50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9c50)" (( "(") (binary_expression "puVar38 + 0x2b9c50" (identifier "puVar38") (+ "+") (number_literal "0x2b9c50")) () ")"))))) () ")")) (argument_list "(piVar22,0,0,1,1,uVar26)" (( "(") (identifier "piVar22") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9500))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9500)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9500)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9500)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9500)" (( "(") (binary_expression "puVar38 + 0x2b9500" (identifier "puVar38") (+ "+") (number_literal "0x2b9500")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")"))) (; ";")) (if_statement "if (iVar4 == 0) {\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }\n      else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = 0;\n        iStack_4190 = 0;\n        piVar16 = (int *)0x0;\n        iVar7 = 0;\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_4190 = 0;" (assignment_expression "iStack_4190 = 0" (identifier "iStack_4190") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16 = (int *)0x0;" (assignment_expression "piVar16 = (int *)0x0" (identifier "piVar16") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" (else "else") (compound_statement "{\n        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);\n        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);\n        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);\n        if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }\n        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);\n        if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }\n      }" ({ "{") (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9100))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9100)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9100)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9100)" (( "(") (binary_expression "puVar38 + 0x2b9100" (identifier "puVar38") (+ "+") (number_literal "0x2b9100")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);" (assignment_expression "piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" (identifier "piVar16") (= "=") (cast_expression "(int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93b0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b93b0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b93b0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b93b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93b0)" (( "(") (binary_expression "puVar38 + 0x2b93b0" (identifier "puVar38") (+ "+") (number_literal "0x2b93b0")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")"))))) (; ";")) (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99ac)" (( "(") (binary_expression "puVar38 + 0x2b99ac" (identifier "puVar38") (+ "+") (number_literal "0x2b99ac")) () ")"))))) () ")")) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c)" (( "(") (identifier "piVar22") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6a0c")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n          iVar7 = 0;\n          iVar6 = 0;\n        }\n        else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = 0;\n          iVar6 = 0;\n        }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" (else "else") (compound_statement "{\n          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);\n          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);\n        }" ({ "{") (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e14))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9e14)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9e14)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9e14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9e14)" (( "(") (binary_expression "puVar38 + 0x2b9e14" (identifier "puVar38") (+ "+") (number_literal "0x2b9e14")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);" (assignment_expression "iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9160))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9160)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9160)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9160)" (( "(") (binary_expression "puVar38 + 0x2b9160" (identifier "puVar38") (+ "+") (number_literal "0x2b9160")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99ac)" (( "(") (binary_expression "puVar38 + 0x2b99ac" (identifier "puVar38") (+ "+") (number_literal "0x2b99ac")) () ")"))))) () ")")) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8)" (( "(") (identifier "piVar22") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x69f8")) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n          iStack_4190 = 0;\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iStack_4190 = 0;\n        }" ({ "{") (expression_statement "iStack_4190 = 0;" (assignment_expression "iStack_4190 = 0" (identifier "iStack_4190") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" (else "else") (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);\n          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);\n        }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b982c))(iVar8,0,10)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b982c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b982c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b982c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b982c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b982c)" (( "(") (binary_expression "puVar38 + 0x2b982c" (identifier "puVar38") (+ "+") (number_literal "0x2b982c")) () ")"))))) () ")")) (argument_list "(iVar8,0,10)" (( "(") (identifier "iVar8") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);" (assignment_expression "iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26)" (identifier "iStack_4190") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92f0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92f0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92f0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92f0)" (( "(") (binary_expression "puVar38 + 0x2b92f0" (identifier "puVar38") (+ "+") (number_literal "0x2b92f0")) () ")"))))) () ")")) (argument_list "(piVar22,uVar21,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar21") (, ",") (identifier "uVar26") () ")")))) (; ";")) (} "}")))) (} "}")))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69e4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x69e4")) (, ",") (identifier "piVar24") () ")"))) (; ";")) (if_statement "if (*(char *)(piVar22 + 0x4d0) != '\0') {\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(piVar22 + 0x4d0) != '\0')" (( "(") (binary_expression "*(char *)(piVar22 + 0x4d0) != '\0'" (pointer_expression "*(char *)(piVar22 + 0x4d0)" (* "*") (cast_expression "(char *)(piVar22 + 0x4d0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x4d0)" (( "(") (binary_expression "piVar22 + 0x4d0" (identifier "piVar22") (+ "+") (number_literal "0x4d0")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);\n        if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }\n      }" ({ "{") (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b95fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b95fc)" (( "(") (binary_expression "puVar38 + 0x2b95fc" (identifier "puVar38") (+ "+") (number_literal "0x2b95fc")) () ")"))))) () ")")) (argument_list "(piVar22 + 0x4d0,piVar24)" (( "(") (binary_expression "piVar22 + 0x4d0" (identifier "piVar22") (+ "+") (number_literal "0x4d0")) (, ",") (identifier "piVar24") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9304))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9304)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9304)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9304)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9304)" (( "(") (binary_expression "puVar38 + 0x2b9304" (identifier "puVar38") (+ "+") (number_literal "0x2b9304")) () ")"))))) () ")")) (argument_list "(piVar22 + 0x4d0,4,auStack_110c)" (( "(") (binary_expression "piVar22 + 0x4d0" (identifier "piVar22") (+ "+") (number_literal "0x4d0")) (, ",") (number_literal "4") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69cc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x69cc")) (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar24 = piVar22 + 0x8d0;" (assignment_expression "piVar24 = piVar22 + 0x8d0" (identifier "piVar24") (= "=") (binary_expression "piVar22 + 0x8d0" (identifier "piVar22") (+ "+") (number_literal "0x8d0"))) (; ";")) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98f8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b98f8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b98f8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b98f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b98f8)" (( "(") (binary_expression "puVar38 + 0x2b98f8" (identifier "puVar38") (+ "+") (number_literal "0x2b98f8")) () ")"))))) () ")")) (argument_list "(piVar24,uVar26)" (( "(") (identifier "piVar24") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }\n      else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x610c")) (, ",") (identifier "piVar24") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" (else "else") (compound_statement "{\n        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n        if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }\n        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n        if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }\n      }" ({ "{") (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b933c))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b933c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b933c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b933c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b933c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b933c)" (( "(") (binary_expression "puVar38 + 0x2b933c" (identifier "puVar38") (+ "+") (number_literal "0x2b933c")) () ")"))))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }\n        else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x610c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x610c")) (, ",") (identifier "piVar24") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" (else "else") (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);\n        }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b933c))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b933c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b933c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b933c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b933c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b933c)" (( "(") (binary_expression "puVar38 + 0x2b933c" (identifier "puVar38") (+ "+") (number_literal "0x2b933c")) () ")"))))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x69b4")) (, ",") (identifier "piVar24") (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9994))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9994))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9994)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9994)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9994)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9994)" (( "(") (binary_expression "puVar38 + 0x2b9994" (identifier "puVar38") (+ "+") (number_literal "0x2b9994")) () ")"))))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);\n        }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9994))(iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9994))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9994)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9994)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9994)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9994)" (( "(") (binary_expression "puVar38 + 0x2b9994" (identifier "puVar38") (+ "+") (number_literal "0x2b9994")) () ")"))))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x69a0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x69a0")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(5,*piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(5,*piVar22)" (( "(") (number_literal "5") (, ",") (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x698c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x698c")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" (identifier "dVar41") (= "=") (cast_expression "(double)piVar22[6]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (piVar22[6] < 0) {\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" (if "if") (parenthesized_expression "(piVar22[6] < 0)" (( "(") (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" (identifier "dVar47") (= "=") (cast_expression "(double)piVar22[7]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (piVar22[7] < 0) {\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" (if "if") (parenthesized_expression "(piVar22[7] < 0)" (( "(") (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n      }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),\n                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7])" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x697c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x697c")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") (, ",") (cast_expression "(double)piVar22[0xa6]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[0xa6]" (identifier "piVar22") ([ "[") (number_literal "0xa6") (] "]"))) (, ",") (cast_expression "(double)piVar22[0xa7]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[0xa7]" (identifier "piVar22") ([ "[") (number_literal "0xa7") (] "]"))) () ")"))) (; ";")) (expression_statement "iVar9 = piVar22[0xcd0];" (assignment_expression "iVar9 = piVar22[0xcd0]" (identifier "iVar9") (= "=") (subscript_expression "piVar22[0xcd0]" (identifier "piVar22") ([ "[") (number_literal "0xcd0") (] "]"))) (; ";")) (expression_statement "iVar8 = piVar22[0xcd1];" (assignment_expression "iVar8 = piVar22[0xcd1]" (identifier "iVar8") (= "=") (subscript_expression "piVar22[0xcd1]" (identifier "piVar22") ([ "[") (number_literal "0xcd1") (] "]"))) (; ";")) (if_statement "if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }" (if "if") (parenthesized_expression "(((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8))))" (( "(") (binary_expression "((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))" (parenthesized_expression "((iVar9 != 0) || (iVar8 != 0))" (( "(") (binary_expression "(iVar9 != 0) || (iVar8 != 0)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))" (( "(") (parenthesized_expression "(iVar9 != piVar22[6] || (piVar22[7] != iVar8))" (( "(") (binary_expression "iVar9 != piVar22[6] || (piVar22[7] != iVar8)" (binary_expression "iVar9 != piVar22[6]" (identifier "iVar9") (!= "!=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (|| "||") (parenthesized_expression "(piVar22[7] != iVar8)" (( "(") (binary_expression "piVar22[7] != iVar8" (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")) (!= "!=") (identifier "iVar8")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        dVar41 = (double)iVar9;\n        if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar8;\n        if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\n      }" ({ "{") (expression_statement "dVar41 = (double)iVar9;" (assignment_expression "dVar41 = (double)iVar9" (identifier "dVar41") (= "=") (cast_expression "(double)iVar9" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar9"))) (; ";")) (if_statement "if (iVar9 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar9 < 0)" (( "(") (binary_expression "iVar9 < 0" (identifier "iVar9") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)iVar8;" (assignment_expression "dVar47 = (double)iVar8" (identifier "dVar47") (= "=") (cast_expression "(double)iVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar8"))) (; ";")) (if_statement "if (iVar8 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar8 < 0)" (( "(") (binary_expression "iVar8 < 0" (identifier "iVar8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6954" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6954")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (; ";")) (if_statement "if (*(double *)(piVar22 + 0x86) != 0.0) {\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" (if "if") (parenthesized_expression "(*(double *)(piVar22 + 0x86) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0x86) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x86)" (* "*") (cast_expression "(double *)(piVar22 + 0x86)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x86)" (( "(") (binary_expression "piVar22 + 0x86" (identifier "piVar22") (+ "+") (number_literal "0x86")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n        if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" ({ "{") (if_statement "if (*(double *)(piVar22 + 0x88) != 0.0) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }" (if "if") (parenthesized_expression "(*(double *)(piVar22 + 0x88) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0x88) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x88)" (* "*") (cast_expression "(double *)(piVar22 + 0x88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x88)" (( "(") (binary_expression "piVar22 + 0x88" (identifier "piVar22") (+ "+") (number_literal "0x88")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));\n          dVar41 = (double)piVar22[6];\n          if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = (double)piVar22[7];\n          if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],\n                     *(double *)(piVar22 + 0x88))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6934" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6934")) (, ",") (subscript_expression "piVar22[0x86]" (identifier "piVar22") ([ "[") (number_literal "0x86") (] "]")) (, ",") (subscript_expression "piVar22[0x87]" (identifier "piVar22") ([ "[") (number_literal "0x87") (] "]")) (, ",") (pointer_expression "*(double *)(piVar22 + 0x88)" (* "*") (cast_expression "(double *)(piVar22 + 0x88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x88)" (( "(") (binary_expression "piVar22 + 0x88" (identifier "piVar22") (+ "+") (number_literal "0x88")) () ")")))) () ")"))) (; ";")) (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" (identifier "dVar41") (= "=") (cast_expression "(double)piVar22[6]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (piVar22[6] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" (if "if") (parenthesized_expression "(piVar22[6] < 0)" (( "(") (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" (identifier "dVar47") (= "=") (cast_expression "(double)piVar22[7]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (piVar22[7] < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" (if "if") (parenthesized_expression "(piVar22[7] < 0)" (( "(") (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = dVar47 / *(double *)(piVar22 + 0x88);" (assignment_expression "dVar47 = dVar47 / *(double *)(piVar22 + 0x88)" (identifier "dVar47") (= "=") (binary_expression "dVar47 / *(double *)(piVar22 + 0x88)" (identifier "dVar47") (/ "/") (pointer_expression "*(double *)(piVar22 + 0x88)" (* "*") (cast_expression "(double *)(piVar22 + 0x88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x88)" (( "(") (binary_expression "piVar22 + 0x88" (identifier "piVar22") (+ "+") (number_literal "0x88")) () ")")))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,\n                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),\n                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x691c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x691c")) (, ",") (cast_expression "(int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20)" (( "(") (binary_expression "(ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20" (call_expression "(ulonglong)(dVar41 / *(double *)(piVar22 + 0x86))" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(dVar41 / *(double *)(piVar22 + 0x86))" (( "(") (binary_expression "dVar41 / *(double *)(piVar22 + 0x86)" (identifier "dVar41") (/ "/") (pointer_expression "*(double *)(piVar22 + 0x86)" (* "*") (cast_expression "(double *)(piVar22 + 0x86)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x86)" (( "(") (binary_expression "piVar22 + 0x86" (identifier "piVar22") (+ "+") (number_literal "0x86")) () ")"))))) () ")"))) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41 / *(double *)(piVar22 + 0x86),0)" (identifier "SUB84") (argument_list "(dVar41 / *(double *)(piVar22 + 0x86),0)" (( "(") (binary_expression "dVar41 / *(double *)(piVar22 + 0x86)" (identifier "dVar41") (/ "/") (pointer_expression "*(double *)(piVar22 + 0x86)" (* "*") (cast_expression "(double *)(piVar22 + 0x86)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x86)" (( "(") (binary_expression "piVar22 + 0x86" (identifier "piVar22") (+ "+") (number_literal "0x86")) () ")"))))) (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar21 = (*pcVar40)(0x41,piVar22[0x80]);" (assignment_expression "uVar21 = (*pcVar40)(0x41,piVar22[0x80])" (identifier "uVar21") (= "=") (call_expression "(*pcVar40)(0x41,piVar22[0x80])" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(0x41,piVar22[0x80])" (( "(") (number_literal "0x41") (, ",") (subscript_expression "piVar22[0x80]" (identifier "piVar22") ([ "[") (number_literal "0x80") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6904" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6904")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,uVar36)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(9,uVar36)" (( "(") (number_literal "9") (, ",") (identifier "uVar36") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68f4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x68f4")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);" (assignment_expression "iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b938c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b938c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b938c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b938c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b938c)" (( "(") (binary_expression "puVar38 + 0x2b938c" (identifier "puVar38") (+ "+") (number_literal "0x2b938c")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49,iVar8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0x49,iVar8)" (( "(") (number_literal "0x49") (, ",") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68e0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x68e0")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (if_statement "if (piVar22[0xa8] != iVar8) {\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }" (if "if") (parenthesized_expression "(piVar22[0xa8] != iVar8)" (( "(") (binary_expression "piVar22[0xa8] != iVar8" (subscript_expression "piVar22[0xa8]" (identifier "piVar22") ([ "[") (number_literal "0xa8") (] "]")) (!= "!=") (identifier "iVar8")) () ")")) (compound_statement "{\n        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);\n      }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x49)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0x49)" (( "(") (number_literal "0x49") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68d4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x68d4")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97])" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0x18,piVar22[0x97])" (( "(") (number_literal "0x18") (, ",") (subscript_expression "piVar22[0x97]" (identifier "piVar22") ([ "[") (number_literal "0x97") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x68c0")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (if_statement "if (iVar5 != 0) {\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar8 = piVar22[8];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }\n      }" ({ "{") (expression_statement "iVar8 = piVar22[8];" (assignment_expression "iVar8 = piVar22[8]" (identifier "iVar8") (= "=") (subscript_expression "piVar22[8]" (identifier "piVar22") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" (identifier "dVar41") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (iVar8 == iVar5) {\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" (if "if") (parenthesized_expression "(iVar8 == iVar5)" (( "(") (binary_expression "iVar8 == iVar5" (identifier "iVar8") (== "==") (identifier "iVar5")) () ")")) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x68ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x68ac")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" (else "else") (compound_statement "{\n          dVar47 = (double)iVar8;\n          if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);\n          dVar47 = dVar41;\n        }" ({ "{") (expression_statement "dVar47 = (double)iVar8;" (assignment_expression "dVar47 = (double)iVar8" (identifier "dVar47") (= "=") (cast_expression "(double)iVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar8"))) (; ";")) (if_statement "if (iVar8 < 0) {\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" (if "if") (parenthesized_expression "(iVar8 < 0)" (( "(") (binary_expression "iVar8 < 0" (identifier "iVar8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)\n                     ,SUB84(dVar47,0),dVar41)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6898" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6898")) (, ",") (cast_expression "(int)((ulonglong)dVar47 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar47 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar47 >> 0x20" (cast_expression "(ulonglong)dVar47" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar47")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar47,0)" (identifier "SUB84") (argument_list "(dVar47,0)" (( "(") (identifier "dVar47") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar41") () ")"))) (; ";")) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" (identifier "dVar47") (= "=") (identifier "dVar41")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (piVar16 != (int *)0x0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }" (if "if") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }\n        if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);\n        dVar44 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar43 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));\n        if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }\n        if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }\n        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(piVar16);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x687c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x687c")) () ")"))) (; ";")) (if_statement "if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" (if "if") (parenthesized_expression "(uVar36 < 0x22)" (( "(") (binary_expression "uVar36 < 0x22" (identifier "uVar36") (< "<") (number_literal "0x22")) () ")")) (compound_statement "{\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" ({ "{") (expression_statement "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))()" (identifier "uVar36") (= "=") (call_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c))" (( "(") (pointer_expression "*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" (* "*") (cast_expression "(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c)" (( "(") (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +\n                             0x2c0d9c" (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" (identifier "puVar38") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6028" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6028")) (+ "+") (binary_expression "uVar36 * 4" (identifier "uVar36") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2c0d9c")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}"))) (if_statement "if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" (if "if") (parenthesized_expression "(piVar22[0xb0] < 1)" (( "(") (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          iVar5 = piVar22[0xaf];\n        }" ({ "{") (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" (else "else") (compound_statement "{\n          iVar5 = 0;\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          piVar24 = piVar16;\n          do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (expression_statement "piVar24 = piVar16;" (assignment_expression "piVar24 = piVar16" (identifier "piVar24") (= "=") (identifier "piVar16")) (; ";")) (do_statement "do {\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          } while (iVar5 < piVar22[0xb0]);" (do "do") (compound_statement "{\n            dVar44 = (double)iVar5;\n            dVar47 = (double)*piVar24;\n            if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }\n            iVar5 = iVar5 + 1;\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);\n            piVar24 = piVar24 + 0x1e;\n          }" ({ "{") (expression_statement "dVar44 = (double)iVar5;" (assignment_expression "dVar44 = (double)iVar5" (identifier "dVar44") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (expression_statement "dVar47 = (double)*piVar24;" (assignment_expression "dVar47 = (double)*piVar24" (identifier "dVar47") (= "=") (cast_expression "(double)*piVar24" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*piVar24" (* "*") (identifier "piVar24")))) (; ";")) (if_statement "if (*piVar24 < 0) {\n              dVar47 = dVar47 + dVar41;\n            }" (if "if") (parenthesized_expression "(*piVar24 < 0)" (( "(") (binary_expression "*piVar24 < 0" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              dVar47 = dVar47 + dVar41;\n            }" ({ "{") (expression_statement "dVar47 = dVar47 + dVar41;" (assignment_expression "dVar47 = dVar47 + dVar41" (identifier "dVar47") (= "=") (binary_expression "dVar47 + dVar41" (identifier "dVar47") (+ "+") (identifier "dVar41"))) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                       dVar47)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar8 + -0x67ac" (identifier "iVar8") (+ "+") (number_literal "-0x67ac")) (, ",") (cast_expression "(int)((ulonglong)dVar44 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar44 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar44 >> 0x20" (cast_expression "(ulonglong)dVar44" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar44")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar44,0)" (identifier "SUB84") (argument_list "(dVar44,0)" (( "(") (identifier "dVar44") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") () ")"))) (; ";")) (expression_statement "piVar24 = piVar24 + 0x1e;" (assignment_expression "piVar24 = piVar24 + 0x1e" (identifier "piVar24") (= "=") (binary_expression "piVar24 + 0x1e" (identifier "piVar24") (+ "+") (number_literal "0x1e"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < piVar22[0xb0])" (( "(") (binary_expression "iVar5 < piVar22[0xb0]" (identifier "iVar5") (< "<") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) () ")")) (; ";")) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar5 != 0) {\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = (double)piVar16[0x78];\n          if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n        }" ({ "{") (expression_statement "dVar41 = (double)piVar16[0x78];" (assignment_expression "dVar41 = (double)piVar16[0x78]" (identifier "dVar41") (= "=") (cast_expression "(double)piVar16[0x78]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar16[0x78]" (identifier "piVar16") ([ "[") (number_literal "0x78") (] "]")))) (; ";")) (if_statement "if (piVar16[0x78] < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" (if "if") (parenthesized_expression "(piVar16[0x78] < 0)" (( "(") (binary_expression "piVar16[0x78] < 0" (subscript_expression "piVar16[0x78]" (identifier "piVar16") ([ "[") (number_literal "0x78") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x678c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x678c")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if ((uint)piVar22[8] < 0x11) {\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }\n        else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" (if "if") (parenthesized_expression "((uint)piVar22[8] < 0x11)" (( "(") (binary_expression "(uint)piVar22[8] < 0x11" (cast_expression "(uint)piVar22[8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar22[8]" (identifier "piVar22") ([ "[") (number_literal "8") (] "]"))) (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));\n        }" ({ "{") (expression_statement "dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));" (assignment_expression "dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" (identifier "dVar41") (= "=") (cast_expression "(double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)))" (( "(") (binary_expression "*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /\n                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" (pointer_expression "*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" (* "*") (cast_expression "(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1a50" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1a50")) () ")")))) (/ "/") (cast_expression "(float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (cast_expression "(int)(0xffff >> (0x10U - piVar22[8] & 0x1f))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(0xffff >> (0x10U - piVar22[8] & 0x1f))" (( "(") (binary_expression "0xffff >> (0x10U - piVar22[8] & 0x1f)" (number_literal "0xffff") (>> ">>") (parenthesized_expression "(0x10U - piVar22[8] & 0x1f)" (( "(") (binary_expression "0x10U - piVar22[8] & 0x1f" (binary_expression "0x10U - piVar22[8]" (number_literal "0x10U") (- "-") (subscript_expression "piVar22[8]" (identifier "piVar22") ([ "[") (number_literal "8") (] "]"))) (& "&") (number_literal "0x1f")) () ")"))) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" (else "else") (compound_statement "{\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n        }" ({ "{") (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6774" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6774")) () ")"))) (; ";")) (expression_statement "dVar44 = (double)piVar22[6];" (assignment_expression "dVar44 = (double)piVar22[6]" (identifier "dVar44") (= "=") (cast_expression "(double)piVar22[6]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (piVar22[6] < 0) {\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(piVar22[6] < 0)" (( "(") (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar44") (= "=") (binary_expression "dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar44") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar43 = (double)piVar22[7];" (assignment_expression "dVar43 = (double)piVar22[7]" (identifier "dVar43") (= "=") (cast_expression "(double)piVar22[7]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (piVar22[7] < 0) {\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(piVar22[7] < 0)" (( "(") (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar43") (= "=") (binary_expression "dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar43") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,\n                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x675c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x675c")) (, ",") (cast_expression "(int)((ulonglong)(dVar44 * dVar43) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(dVar44 * dVar43) >> 0x20)" (( "(") (binary_expression "(ulonglong)(dVar44 * dVar43) >> 0x20" (call_expression "(ulonglong)(dVar44 * dVar43)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(dVar44 * dVar43)" (( "(") (binary_expression "dVar44 * dVar43" (identifier "dVar44") (* "*") (identifier "dVar43")) () ")"))) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar44 * dVar43,0)" (identifier "SUB84") (argument_list "(dVar44 * dVar43,0)" (( "(") (binary_expression "dVar44 * dVar43" (identifier "dVar44") (* "*") (identifier "dVar43")) (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (if_statement "if (uVar36 < 0x22) {\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" (if "if") (parenthesized_expression "(uVar36 < 0x22)" (( "(") (binary_expression "uVar36 < 0x22" (identifier "uVar36") (< "<") (number_literal "0x22")) () ")")) (compound_statement "{\n                    \n                    \n          uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();\n          return uVar36;\n        }" ({ "{") (expression_statement "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))()" (identifier "uVar36") (= "=") (call_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))()" (parenthesized_expression "(*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c))" (( "(") (pointer_expression "*(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" (* "*") (cast_expression "(code *)(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c)" (( "(") (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +\n                             0x2c0d9c" (binary_expression "puVar38 +\n                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" (identifier "puVar38") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5fa0")) (+ "+") (binary_expression "uVar36 * 4" (identifier "uVar36") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2c0d9c")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}"))) (if_statement "if (piVar22[0xb0] < 1) {\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" (if "if") (parenthesized_expression "(piVar22[0xb0] < 1)" (( "(") (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          iVar5 = piVar22[0xaf];\n        }" ({ "{") (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" (else "else") (compound_statement "{\n          iVar9 = *(int *)(puVar38 + 0x2b8f68);\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar5 = 0;\n          do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" ({ "{") (expression_statement "iVar9 = *(int *)(puVar38 + 0x2b8f68);" (assignment_expression "iVar9 = *(int *)(puVar38 + 0x2b8f68)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8f68)" (( "(") (binary_expression "puVar38 + 0x2b8f68" (identifier "puVar38") (+ "+") (number_literal "0x2b8f68")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          } while (iVar28 < piVar22[0xb0]);" (do "do") (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);\n            dVar47 = dVar44 / dVar41;\n            iVar28 = iVar5 + 1;\n            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);\n            iVar5 = iVar28;\n          }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9268)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9268)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9268)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9268)" (( "(") (binary_expression "puVar38 + 0x2b9268" (identifier "puVar38") (+ "+") (number_literal "0x2b9268")) () ")"))))) () ")")) (argument_list "(auStack_110c,0x1000,iVar8 + -0x6728)" (( "(") (identifier "auStack_110c") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar8 + -0x6728" (identifier "iVar8") (+ "+") (number_literal "-0x6728")) () ")"))) (; ";")) (expression_statement "dVar47 = dVar44 / dVar41;" (assignment_expression "dVar47 = dVar44 / dVar41" (identifier "dVar47") (= "=") (binary_expression "dVar44 / dVar41" (identifier "dVar44") (/ "/") (identifier "dVar41"))) (; ";")) (expression_statement "iVar28 = iVar5 + 1;" (assignment_expression "iVar28 = iVar5 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);" (call_expression "(*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c)" (parenthesized_expression "(*(code *)(iVar9 + -0x1a60))" (( "(") (pointer_expression "*(code *)(iVar9 + -0x1a60)" (* "*") (cast_expression "(code *)(iVar9 + -0x1a60)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x1a60)" (( "(") (binary_expression "iVar9 + -0x1a60" (identifier "iVar9") (+ "+") (number_literal "-0x1a60")) () ")")))) () ")")) (argument_list "(puVar32,iVar5,auStack_110c)" (( "(") (identifier "puVar32") (, ",") (identifier "iVar5") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "iVar5 = iVar28;" (assignment_expression "iVar5 = iVar28" (identifier "iVar5") (= "=") (identifier "iVar28")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar28 < piVar22[0xb0])" (( "(") (binary_expression "iVar28 < piVar22[0xb0]" (identifier "iVar28") (< "<") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) () ")")) (; ";")) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar5 != 0) {\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;\n          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);\n        }" ({ "{") (expression_statement "dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;" (assignment_expression "dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41" (identifier "dVar47") (= "=") (binary_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41" (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1438")) () ")")))) (/ "/") (identifier "dVar41"))) (; ";")) (expression_statement "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);" (call_expression "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))\n                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158)" (parenthesized_expression "(*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" (* "*") (cast_expression "(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8f68) + -0x1a60)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8f68) + -0x1a60" (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8f68)" (( "(") (binary_expression "puVar38 + 0x2b8f68" (identifier "puVar38") (+ "+") (number_literal "0x2b8f68")) () ")")))) (+ "+") (number_literal "-0x1a60")) () ")")))) () ")")) (argument_list "(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158)" (( "(") (identifier "puVar32") (, ",") (number_literal "4") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x158")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }" (if "if") (parenthesized_expression "((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3))" (( "(") (binary_expression "(uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)" (parenthesized_expression "(uVar36 != 0x21)" (( "(") (binary_expression "uVar36 != 0x21" (identifier "uVar36") (!= "!=") (number_literal "0x21")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)" (( "(") (comma_expression "iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8f68)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8f68)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8f68)" (( "(") (binary_expression "puVar38 + 0x2b8f68" (identifier "puVar38") (+ "+") (number_literal "0x2b8f68")) () ")"))))) (, ",") (binary_expression "uVar36 != 3" (identifier "uVar36") (!= "!=") (number_literal "3"))) () ")"))) () ")")) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);\n          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;\n          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dcc)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6748" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6748")) () ")"))) (; ";")) (expression_statement "dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;" (assignment_expression "dVar47 = *(double *)(iVar8 + 0x1438) / dVar41" (identifier "dVar47") (= "=") (binary_expression "*(double *)(iVar8 + 0x1438) / dVar41" (pointer_expression "*(double *)(iVar8 + 0x1438)" (* "*") (cast_expression "(double *)(iVar8 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1438)" (( "(") (binary_expression "iVar8 + 0x1438" (identifier "iVar8") (+ "+") (number_literal "0x1438")) () ")")))) (/ "/") (identifier "dVar41"))) (; ";")) (expression_statement "(*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);" (call_expression "(*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" (parenthesized_expression "(*(code *)(iVar5 + -0x1a60))" (( "(") (pointer_expression "*(code *)(iVar5 + -0x1a60)" (* "*") (cast_expression "(code *)(iVar5 + -0x1a60)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x1a60)" (( "(") (binary_expression "iVar5 + -0x1a60" (identifier "iVar5") (+ "+") (number_literal "-0x1a60")) () ")")))) () ")")) (argument_list "(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" (( "(") (identifier "puVar32") (, ",") (number_literal "0x40") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6730")) () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(piVar16);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) () ")")) (argument_list "(piVar16)" (( "(") (identifier "piVar16") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar6 != 0) {\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);\n        if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }\n        (*pcVar40)(iVar6);\n      }" ({ "{") (expression_statement "iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;" (assignment_expression "iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1" (identifier "iVar5") (= "=") (binary_expression "(1 << (piVar22[8] & 0x1fU)) + -1" (parenthesized_expression "(1 << (piVar22[8] & 0x1fU))" (( "(") (binary_expression "1 << (piVar22[8] & 0x1fU)" (number_literal "1") (<< "<<") (parenthesized_expression "(piVar22[8] & 0x1fU)" (( "(") (binary_expression "piVar22[8] & 0x1fU" (subscript_expression "piVar22[8]" (identifier "piVar22") ([ "[") (number_literal "8") (] "]")) (& "&") (number_literal "0x1fU")) () ")"))) () ")")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" (identifier "dVar41") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6718" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6718")) () ")"))) (; ";")) (if_statement "if (uVar36 == 3) {\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }\n        else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" (if "if") (parenthesized_expression "(uVar36 == 3)" (( "(") (binary_expression "uVar36 == 3" (identifier "uVar36") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          dVar47 = dVar41;\n          FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);\n          if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }\nLAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n        }" ({ "{") (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" (identifier "dVar47") (= "=") (identifier "dVar41")) (; ";")) (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0)" (( "(") (identifier "puVar32") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6ab0")) () ")"))) (; ";")) (if_statement "if (piVar22[0xaf] != 0) {\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }" (if "if") (parenthesized_expression "(piVar22[0xaf] != 0)" (( "(") (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\nLAB_000f339c:\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,4,iVar5 + 0x158);\n            goto LAB_000f33c0;\n          }" ({ "{") (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (labeled_statement "LAB_000f339c:\n            dVar47 = dVar41;" (statement_identifier "LAB_000f339c") (: ":") (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" (identifier "dVar47") (= "=") (identifier "dVar41")) (; ";"))) (expression_statement "FUN_000ef7f8(puVar32,4,iVar5 + 0x158);" (call_expression "FUN_000ef7f8(puVar32,4,iVar5 + 0x158)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,4,iVar5 + 0x158)" (( "(") (identifier "puVar32") (, ",") (number_literal "4") (, ",") (binary_expression "iVar5 + 0x158" (identifier "iVar5") (+ "+") (number_literal "0x158")) () ")"))) (; ";")) (goto_statement "goto LAB_000f33c0;" (goto "goto") (statement_identifier "LAB_000f33c0") (; ";")) (} "}"))) (labeled_statement "LAB_000f1160:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (statement_identifier "LAB_000f1160") (: ":") (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" (else "else") (compound_statement "{\n          if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }\n          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }\n          if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }\nLAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n          if (uVar36 != 3) goto LAB_000f1124;\n        }" ({ "{") (if_statement "if (uVar36 < 4) {\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }" (if "if") (parenthesized_expression "(uVar36 < 4)" (( "(") (binary_expression "uVar36 < 4" (identifier "uVar36") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n            if (uVar36 != 2) goto LAB_000f33e4;\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);\n            FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);\n            if (piVar22[0xaf] != 0) goto LAB_000f3398;\nLAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);\n            FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);\n            dVar47 = dVar41;\n            goto LAB_000f1160;\n          }" ({ "{") (if_statement "if (uVar36 != 2) goto LAB_000f33e4;" (if "if") (parenthesized_expression "(uVar36 != 2)" (( "(") (binary_expression "uVar36 != 2" (identifier "uVar36") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_000f33e4;" (goto "goto") (statement_identifier "LAB_000f33e4") (; ";"))) (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c)" (( "(") (identifier "puVar32") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x17c")) () ")"))) (; ";")) (expression_statement "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);" (call_expression "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194)" (( "(") (identifier "puVar32") (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x194")) () ")"))) (; ";")) (expression_statement "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);" (call_expression "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4)" (( "(") (identifier "puVar32") (, ",") (number_literal "2") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x1b4")) () ")"))) (; ";")) (expression_statement "FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);" (call_expression "FUN_000ef7f8(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164)" (( "(") (identifier "puVar32") (, ",") (number_literal "3") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x164")) () ")"))) (; ";")) (if_statement "if (piVar22[0xaf] != 0) goto LAB_000f3398;" (if "if") (parenthesized_expression "(piVar22[0xaf] != 0)" (( "(") (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f3398;" (goto "goto") (statement_identifier "LAB_000f3398") (; ";"))) (labeled_statement "LAB_000f1124:\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);" (statement_identifier "LAB_000f1124") (: ":") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6704" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6704")) () ")"))) (; ";"))) (expression_statement "FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);" (call_expression "FUN_000ef7f8(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730)" (( "(") (identifier "puVar32") (, ",") (number_literal "0x40") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6730" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6730")) () ")"))) (; ";")) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" (identifier "dVar47") (= "=") (identifier "dVar41")) (; ";")) (goto_statement "goto LAB_000f1160;" (goto "goto") (statement_identifier "LAB_000f1160") (; ";")) (} "}"))) (if_statement "if ((uVar36 == 0x15) || (uVar36 == 0x17)) {\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }\n          else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" (if "if") (parenthesized_expression "((uVar36 == 0x15) || (uVar36 == 0x17))" (( "(") (binary_expression "(uVar36 == 0x15) || (uVar36 == 0x17)" (parenthesized_expression "(uVar36 == 0x15)" (( "(") (binary_expression "uVar36 == 0x15" (identifier "uVar36") (== "==") (number_literal "0x15")) () ")")) (|| "||") (parenthesized_expression "(uVar36 == 0x17)" (( "(") (binary_expression "uVar36 == 0x17" (identifier "uVar36") (== "==") (number_literal "0x17")) () ")"))) () ")")) (compound_statement "{\n            FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);\n            FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);\n            dVar47 = dVar41;\n            FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);\nLAB_000f3384:\n            iVar5 = piVar22[0xaf];\n          }" ({ "{") (expression_statement "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);" (call_expression "FUN_000ef7f8(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac)" (( "(") (identifier "puVar32") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x1ac")) () ")"))) (; ";")) (expression_statement "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);" (call_expression "FUN_000ef7f8(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188)" (( "(") (identifier "puVar32") (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x188")) () ")"))) (; ";")) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" (identifier "dVar47") (= "=") (identifier "dVar41")) (; ";")) (expression_statement "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);" (call_expression "FUN_000ef7f8(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170)" (( "(") (identifier "puVar32") (, ",") (number_literal "2") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x170")) () ")"))) (; ";")) (labeled_statement "LAB_000f3384:\n            iVar5 = piVar22[0xaf];" (statement_identifier "LAB_000f3384") (: ":") (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" (else "else") (compound_statement "{\nLAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            if (piVar22[0xb0] < 1) goto LAB_000f3384;\n            iVar9 = 0;\n            iVar8 = *(int *)(puVar38 + 0x2b8dd4);\n            do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);\n            iVar5 = piVar22[0xaf];\n          }" ({ "{") (labeled_statement "LAB_000f33e4:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (statement_identifier "LAB_000f33e4") (: ":") (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";"))) (if_statement "if (piVar22[0xb0] < 1) goto LAB_000f3384;" (if "if") (parenthesized_expression "(piVar22[0xb0] < 1)" (( "(") (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000f3384;" (goto "goto") (statement_identifier "LAB_000f3384") (; ";"))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (do_statement "do {\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            } while (iVar9 < piVar22[0xb0]);" (do "do") (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);\n              dVar47 = dVar41;\n              FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);\n              iVar9 = iVar9 + 1;\n            }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9268))\n                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9268)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9268)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9268)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9268)" (( "(") (binary_expression "puVar38 + 0x2b9268" (identifier "puVar38") (+ "+") (number_literal "0x2b9268")) () ")"))))) () ")")) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9)" (( "(") (identifier "auStack_110c") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar5 + -0x6728" (identifier "iVar5") (+ "+") (number_literal "-0x6728")) (, ",") (identifier "iVar9") (, ",") (cast_expression "(double)iVar9" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar9")) () ")"))) (; ";")) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" (identifier "dVar47") (= "=") (identifier "dVar41")) (; ";")) (expression_statement "FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);" (call_expression "FUN_000ef7f8(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6)" (identifier "FUN_000ef7f8") (argument_list "(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6)" (( "(") (identifier "puVar32") (, ",") (identifier "iVar9") (, ",") (binary_expression "iVar8 + 0x6b1c" (identifier "iVar8") (+ "+") (number_literal "0x6b1c")) (, ",") (identifier "iVar9") (, ",") (identifier "dVar41") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < piVar22[0xb0])" (( "(") (binary_expression "iVar9 < piVar22[0xb0]" (identifier "iVar9") (< "<") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) () ")")) (; ";")) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar5 != 0) {\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n            goto LAB_000f339c;\n          }" ({ "{") (labeled_statement "LAB_000f3398:\n            iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (statement_identifier "LAB_000f3398") (: ":") (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000f339c;" (goto "goto") (statement_identifier "LAB_000f339c") (; ";")) (} "}"))) (labeled_statement "LAB_000f33c0:\n          pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (statement_identifier "LAB_000f33c0") (: ":") (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) (; ";"))) (if_statement "if (uVar36 != 3) goto LAB_000f1124;" (if "if") (parenthesized_expression "(uVar36 != 3)" (( "(") (binary_expression "uVar36 != 3" (identifier "uVar36") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_000f1124;" (goto "goto") (statement_identifier "LAB_000f1124") (; ";"))) (} "}")))) (expression_statement "(*pcVar40)(iVar6);" (call_expression "(*pcVar40)(iVar6)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar7 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);\n        if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n        if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar7);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x66f0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x66f0")) () ")"))) (; ";")) (if_statement "if (0 < *(int *)(iVar7 + 0x90)) {\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar7 + 0x90))" (( "(") (binary_expression "0 < *(int *)(iVar7 + 0x90)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar7 + 0x90)" (* "*") (cast_expression "(int *)(iVar7 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (compound_statement "{\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          puVar11 = (undefined4 *)(iVar7 + 0x94);\n          iVar5 = *(int *)(puVar38 + 0x2b8dd4);\n          iVar8 = 0;\n          do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);\n        }" ({ "{") (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "puVar11 = (undefined4 *)(iVar7 + 0x94);" (assignment_expression "puVar11 = (undefined4 *)(iVar7 + 0x94)" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)(iVar7 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x94)" (( "(") (binary_expression "iVar7 + 0x94" (identifier "iVar7") (+ "+") (number_literal "0x94")) () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          } while (iVar8 < iVar9);" (do "do") (compound_statement "{\n            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);\n            iVar9 = *(int *)(iVar7 + 0x90);\n            if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }\n            iVar8 = iVar8 + 1;\n            puVar11 = puVar11 + 1;\n          }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(9,*puVar11)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(9,*puVar11)" (( "(") (number_literal "9") (, ",") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar6 + -0x62ac,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar6 + -0x62ac" (identifier "iVar6") (+ "+") (number_literal "-0x62ac")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar7 + 0x90);" (assignment_expression "iVar9 = *(int *)(iVar7 + 0x90)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar7 + 0x90)" (* "*") (cast_expression "(int *)(iVar7 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (if_statement "if (iVar8 < iVar9 + -1) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }" (if "if") (parenthesized_expression "(iVar8 < iVar9 + -1)" (( "(") (binary_expression "iVar8 < iVar9 + -1" (identifier "iVar8") (< "<") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);\n              iVar9 = *(int *)(iVar7 + 0x90);\n            }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar5 + 0x2948)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar5 + 0x2948" (identifier "iVar5") (+ "+") (number_literal "0x2948")) () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar7 + 0x90);" (assignment_expression "iVar9 = *(int *)(iVar7 + 0x90)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar7 + 0x90)" (* "*") (cast_expression "(int *)(iVar7 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 < iVar9)" (( "(") (binary_expression "iVar8 < iVar9" (identifier "iVar8") (< "<") (identifier "iVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd8)" (( "(") (binary_expression "puVar38 + 0x2b8dd8" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd8")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar5 + -0x4bdc)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar5 + -0x4bdc" (identifier "iVar5") (+ "+") (number_literal "-0x4bdc")) () ")"))) (; ";")) (if_statement "if (0 < piVar22[0xb0]) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }" (if "if") (parenthesized_expression "(0 < piVar22[0xb0])" (( "(") (binary_expression "0 < piVar22[0xb0]" (number_literal "0") (< "<") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) () ")")) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dcc);\n          iStack_418c = 0;\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iStack_4180 = 0;\n          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dcc)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")"))))) (; ";")) (expression_statement "iStack_418c = 0;" (assignment_expression "iStack_418c = 0" (identifier "iStack_418c") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1438)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1438" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iStack_4180 = 0;" (assignment_expression "iStack_4180 = 0" (identifier "iStack_4180") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (do_statement "do {\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          } while (iStack_4180 < piVar22[0xb0]);" (do "do") (compound_statement "{\n            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);\n            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }\n            iStack_4180 = iStack_4180 + 1;\n            iStack_418c = iStack_418c + 0xc;\n          }" ({ "{") (expression_statement "iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);" (assignment_expression "iVar9 = *(int *)(piVar22[0xb4] + iStack_418c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(piVar22[0xb4] + iStack_418c)" (* "*") (cast_expression "(int *)(piVar22[0xb4] + iStack_418c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22[0xb4] + iStack_418c)" (( "(") (binary_expression "piVar22[0xb4] + iStack_418c" (subscript_expression "piVar22[0xb4]" (identifier "piVar22") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (identifier "iStack_418c")) () ")"))))) (; ";")) (if_statement "if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }" (if "if") (parenthesized_expression "((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0))" (( "(") (binary_expression "(iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)" (parenthesized_expression "(iVar9 != 5)" (( "(") (binary_expression "iVar9 != 5" (identifier "iVar9") (!= "!=") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)" (( "(") (binary_expression "*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0" (pointer_expression "*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4)" (* "*") (cast_expression "(int *)(piVar22[0xb4] + iVar9 * 0xc + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22[0xb4] + iVar9 * 0xc + 4)" (( "(") (binary_expression "piVar22[0xb4] + iVar9 * 0xc + 4" (binary_expression "piVar22[0xb4] + iVar9 * 0xc" (subscript_expression "piVar22[0xb4]" (identifier "piVar22") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (binary_expression "iVar9 * 0xc" (identifier "iVar9") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              dVar43 = (double)iVar9;\n              if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }\n              iVar27 = 0;\n              iVar28 = *(int *)(puVar38 + 0x2b8dd0);\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));\n              iVar29 = *(int *)(puVar38 + 0x2b8dd4);\n              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);\n              do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);\n            }" ({ "{") (expression_statement "dVar43 = (double)iVar9;" (assignment_expression "dVar43 = (double)iVar9" (identifier "dVar43") (= "=") (cast_expression "(double)iVar9" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar9"))) (; ";")) (if_statement "if (iVar9 < 0) {\n                dVar43 = dVar43 + dVar44;\n              }" (if "if") (parenthesized_expression "(iVar9 < 0)" (( "(") (binary_expression "iVar9 < 0" (identifier "iVar9") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                dVar43 = dVar43 + dVar44;\n              }" ({ "{") (expression_statement "dVar43 = dVar43 + dVar44;" (assignment_expression "dVar43 = dVar43 + dVar44" (identifier "dVar43") (= "=") (binary_expression "dVar43 + dVar44" (identifier "dVar43") (+ "+") (identifier "dVar44"))) (; ";")) (} "}"))) (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" (identifier "iVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar28 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar28 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar6 + -0x66d4" (identifier "iVar6") (+ "+") (number_literal "-0x66d4")) (, ",") (cast_expression "(int)((ulonglong)dVar43 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar43 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar43 >> 0x20" (cast_expression "(ulonglong)dVar43" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar43")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar43,0)" (identifier "SUB84") (argument_list "(dVar43,0)" (( "(") (identifier "dVar43") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (expression_statement "iVar29 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar29 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (expression_statement "pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);" (assignment_expression "pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0)" (identifier "pdStack_4198") (= "=") (cast_expression "(double *)(iVar9 * 0x2b0 + iVar7 + 0xb0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 * 0x2b0 + iVar7 + 0xb0)" (( "(") (binary_expression "iVar9 * 0x2b0 + iVar7 + 0xb0" (binary_expression "iVar9 * 0x2b0 + iVar7" (binary_expression "iVar9 * 0x2b0" (identifier "iVar9") (* "*") (number_literal "0x2b0")) (+ "+") (identifier "iVar7")) (+ "+") (number_literal "0xb0")) () ")")))) (; ";")) (do_statement "do {\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              } while (iVar27 != 7);" (do "do") (compound_statement "{\n                (**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));\n                if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }\nLAB_000f2c54:\n                iVar27 = iVar27 + 1;\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);\n                pdStack_4198 = pdStack_4198 + 1;\n              }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                          (puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar28 + -0x66c0,\n                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),\n                           SUB84((double)iVar27 + dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar28 + -0x66c0" (identifier "iVar28") (+ "+") (number_literal "-0x66c0")) (, ",") (cast_expression "(int)((ulonglong)((double)iVar27 + dVar41) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)((double)iVar27 + dVar41) >> 0x20)" (( "(") (binary_expression "(ulonglong)((double)iVar27 + dVar41) >> 0x20" (call_expression "(ulonglong)((double)iVar27 + dVar41)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "((double)iVar27 + dVar41)" (( "(") (binary_expression "(double)iVar27 + dVar41" (cast_expression "(double)iVar27" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar27")) (+ "+") (identifier "dVar41")) () ")"))) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84((double)iVar27 + dVar41,0)" (identifier "SUB84") (argument_list "((double)iVar27 + dVar41,0)" (( "(") (binary_expression "(double)iVar27 + dVar41" (cast_expression "(double)iVar27" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar27")) (+ "+") (identifier "dVar41")) (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (if_statement "if (0 < *(int *)(iVar7 + 0x90)) {\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar7 + 0x90))" (( "(") (binary_expression "0 < *(int *)(iVar7 + 0x90)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar7 + 0x90)" (* "*") (cast_expression "(int *)(iVar7 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (compound_statement "{\n                  iVar9 = 0;\n                  pdVar30 = pdStack_4198;\n                  do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));\n                }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "pdVar30 = pdStack_4198;" (assignment_expression "pdVar30 = pdStack_4198" (identifier "pdVar30") (= "=") (identifier "pdStack_4198")) (; ";")) (do_statement "do {\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  } while (iVar9 < *(int *)(iVar7 + 0x90));" (do "do") (compound_statement "{\n                    while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }\n                    iVar9 = iVar9 + 1;\n                    pdVar30 = pdVar30 + 9;\n                  }" ({ "{") (while_statement "while( true ) {\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n                      dVar47 = *pdVar30;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);\n                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;\n                      iVar9 = iVar9 + 1;\n                      pdVar30 = pdVar30 + 9;\n                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);\n                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;\n                    }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9e18))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9e18))()" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e18))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9e18)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9e18)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9e18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9e18)" (( "(") (binary_expression "puVar38 + 0x2b9e18" (identifier "puVar38") (+ "+") (number_literal "0x2b9e18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "dVar47 = *pdVar30;" (assignment_expression "dVar47 = *pdVar30" (identifier "dVar47") (= "=") (pointer_expression "*pdVar30" (* "*") (identifier "pdVar30"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar8 + 0x1710,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar8 + 0x1710" (identifier "iVar8") (+ "+") (number_literal "0x1710")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x90) + -1 <= iVar9)" (( "(") (binary_expression "*(int *)(iVar7 + 0x90) + -1 <= iVar9" (binary_expression "*(int *)(iVar7 + 0x90) + -1" (pointer_expression "*(int *)(iVar7 + 0x90)" (* "*") (cast_expression "(int *)(iVar7 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (+ "+") (number_literal "-1")) (<= "<=") (identifier "iVar9")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pdVar30 = pdVar30 + 9;" (assignment_expression "pdVar30 = pdVar30 + 9" (identifier "pdVar30") (= "=") (binary_expression "pdVar30 + 9" (identifier "pdVar30") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar29 + 0x2948)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar29 + 0x2948" (identifier "iVar29") (+ "+") (number_literal "0x2948")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x90) <= iVar9)" (( "(") (binary_expression "*(int *)(iVar7 + 0x90) <= iVar9" (pointer_expression "*(int *)(iVar7 + 0x90)" (* "*") (cast_expression "(int *)(iVar7 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (<= "<=") (identifier "iVar9")) () ")")) (goto_statement "goto LAB_000f2c54;" (goto "goto") (statement_identifier "LAB_000f2c54") (; ";"))) (} "}"))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pdVar30 = pdVar30 + 9;" (assignment_expression "pdVar30 = pdVar30 + 9" (identifier "pdVar30") (= "=") (binary_expression "pdVar30 + 9" (identifier "pdVar30") (+ "+") (number_literal "9"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < *(int *)(iVar7 + 0x90))" (( "(") (binary_expression "iVar9 < *(int *)(iVar7 + 0x90)" (identifier "iVar9") (< "<") (pointer_expression "*(int *)(iVar7 + 0x90)" (* "*") (cast_expression "(int *)(iVar7 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000f2c54:\n                iVar27 = iVar27 + 1;" (statement_identifier "LAB_000f2c54") (: ":") (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" (identifier "iVar27") (= "=") (binary_expression "iVar27 + 1" (identifier "iVar27") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar5 + -0x4bdc)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar5 + -0x4bdc" (identifier "iVar5") (+ "+") (number_literal "-0x4bdc")) () ")"))) (; ";")) (expression_statement "pdStack_4198 = pdStack_4198 + 1;" (assignment_expression "pdStack_4198 = pdStack_4198 + 1" (identifier "pdStack_4198") (= "=") (binary_expression "pdStack_4198 + 1" (identifier "pdStack_4198") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar27 != 7)" (( "(") (binary_expression "iVar27 != 7" (identifier "iVar27") (!= "!=") (number_literal "7")) () ")")) (; ";")) (} "}"))) (expression_statement "iStack_4180 = iStack_4180 + 1;" (assignment_expression "iStack_4180 = iStack_4180 + 1" (identifier "iStack_4180") (= "=") (binary_expression "iStack_4180 + 1" (identifier "iStack_4180") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iStack_418c = iStack_418c + 0xc;" (assignment_expression "iStack_418c = iStack_418c + 0xc" (identifier "iStack_418c") (= "=") (binary_expression "iStack_418c + 0xc" (identifier "iStack_418c") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_4180 < piVar22[0xb0])" (( "(") (binary_expression "iStack_4180 < piVar22[0xb0]" (identifier "iStack_4180") (< "<") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iVar7);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iVar7)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (} "}"))) (if_statement "if (iStack_4190 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }" (if "if") (parenthesized_expression "(iStack_4190 != 0)" (( "(") (binary_expression "iStack_4190 != 0" (identifier "iStack_4190") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);\n        if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }\n        if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x66b0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x66b0")) () ")"))) (; ";")) (if_statement "if (uVar36 == 3) {\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }\n        else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" (if "if") (parenthesized_expression "(uVar36 == 3)" (( "(") (binary_expression "uVar36 == 3" (identifier "uVar36") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);\nLAB_000f16e0:\n          iVar5 = piVar22[0xaf];\n        }" ({ "{") (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6ab0")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (labeled_statement "LAB_000f16e0:\n          iVar5 = piVar22[0xaf];" (statement_identifier "LAB_000f16e0") (: ":") (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" (else "else") (compound_statement "{\n          if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }\n          if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }\nLAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          if (piVar22[0xb0] < 1) goto LAB_000f16e0;\n          iVar6 = 0;\n          do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);\n          iVar5 = piVar22[0xaf];\n        }" ({ "{") (if_statement "if (3 < uVar36) {\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }" (if "if") (parenthesized_expression "(3 < uVar36)" (( "(") (binary_expression "3 < uVar36" (number_literal "3") (< "<") (identifier "uVar36")) () ")")) (compound_statement "{\n            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);\n            goto LAB_000f16e0;\n          }" ({ "{") (if_statement "if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;" (if "if") (parenthesized_expression "((uVar36 != 0x15) && (uVar36 != 0x17))" (( "(") (binary_expression "(uVar36 != 0x15) && (uVar36 != 0x17)" (parenthesized_expression "(uVar36 != 0x15)" (( "(") (binary_expression "uVar36 != 0x15" (identifier "uVar36") (!= "!=") (number_literal "0x15")) () ")")) (&& "&&") (parenthesized_expression "(uVar36 != 0x17)" (( "(") (binary_expression "uVar36 != 0x17" (identifier "uVar36") (!= "!=") (number_literal "0x17")) () ")"))) () ")")) (goto_statement "goto LAB_000f348c;" (goto "goto") (statement_identifier "LAB_000f348c") (; ";"))) (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x1ac")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (expression_statement "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x188" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x188")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (expression_statement "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "2") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x170" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x170")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (goto_statement "goto LAB_000f16e0;" (goto "goto") (statement_identifier "LAB_000f16e0") (; ";")) (} "}"))) (if_statement "if (uVar36 == 2) {\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }" (if "if") (parenthesized_expression "(uVar36 == 2)" (( "(") (binary_expression "uVar36 == 2" (identifier "uVar36") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);\n            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);\n            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);\n            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);\n            goto LAB_000f16e0;\n          }" ({ "{") (expression_statement "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x17c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x17c")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (expression_statement "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x194" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x194")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (expression_statement "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "2") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x1b4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x1b4")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (expression_statement "FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);" (call_expression "FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190)" (identifier "FUN_000ee85c") (argument_list "(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190)" (( "(") (identifier "puVar32") (, ",") (number_literal "3") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x164" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x164")) (, ",") (identifier "iStack_4190") () ")"))) (; ";")) (goto_statement "goto LAB_000f16e0;" (goto "goto") (statement_identifier "LAB_000f16e0") (; ";")) (} "}"))) (labeled_statement "LAB_000f348c:\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (statement_identifier "LAB_000f348c") (: ":") (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";"))) (if_statement "if (piVar22[0xb0] < 1) goto LAB_000f16e0;" (if "if") (parenthesized_expression "(piVar22[0xb0] < 1)" (( "(") (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000f16e0;" (goto "goto") (statement_identifier "LAB_000f16e0") (; ";"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          } while (iVar6 < piVar22[0xb0]);" (do "do") (compound_statement "{\n            dVar47 = (double)iVar6;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);\n            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);\n            iVar6 = iVar6 + 1;\n          }" ({ "{") (expression_statement "dVar47 = (double)iVar6;" (assignment_expression "dVar47 = (double)iVar6" (identifier "dVar47") (= "=") (cast_expression "(double)iVar6" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar6"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9268)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9268)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9268)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9268)" (( "(") (binary_expression "puVar38 + 0x2b9268" (identifier "puVar38") (+ "+") (number_literal "0x2b9268")) () ")"))))) () ")")) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6728)" (( "(") (identifier "auStack_110c") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar5 + -0x6728" (identifier "iVar5") (+ "+") (number_literal "-0x6728")) () ")"))) (; ";")) (expression_statement "FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);" (call_expression "FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47)" (identifier "FUN_000ee85c") (argument_list "(puVar32,iVar6,auStack_110c,iStack_4190,dVar47)" (( "(") (identifier "puVar32") (, ",") (identifier "iVar6") (, ",") (identifier "auStack_110c") (, ",") (identifier "iStack_4190") (, ",") (identifier "dVar47") () ")"))) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 < piVar22[0xb0])" (( "(") (binary_expression "iVar6 < piVar22[0xb0]" (identifier "iVar6") (< "<") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) () ")")) (; ";")) (expression_statement "iVar5 = piVar22[0xaf];" (assignment_expression "iVar5 = piVar22[0xaf]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar5 != 0) {\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);\n        }" ({ "{") (expression_statement "FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);" (call_expression "FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47)" (identifier "FUN_000ee85c") (argument_list "(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47)" (( "(") (identifier "puVar32") (, ",") (number_literal "4") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x158")) (, ",") (identifier "iStack_4190") (, ",") (identifier "dVar47") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iStack_4190);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iStack_4190)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) () ")")) (argument_list "(iStack_4190)" (( "(") (identifier "iStack_4190") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar4 != 0) {\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }\n        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }\nLAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);\n        if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }\n      }" ({ "{") (if_statement "if (uVar36 == 2) {\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }" (if "if") (parenthesized_expression "(uVar36 == 2)" (( "(") (binary_expression "uVar36 == 2" (identifier "uVar36") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();\n          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);\n        }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9e18))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9e18))()" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9e18))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e18))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9e18)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9e18)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9e18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9e18)" (( "(") (binary_expression "puVar38 + 0x2b9e18" (identifier "puVar38") (+ "+") (number_literal "0x2b9e18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9508))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9508)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9508)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9508)" (( "(") (binary_expression "puVar38 + 0x2b9508" (identifier "puVar38") (+ "+") (number_literal "0x2b9508")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6660" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6660")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}"))) (if_statement "if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }" (if "if") (parenthesized_expression "((piVar22[0xaf] != 0) && (0 < piVar22[7]))" (( "(") (binary_expression "(piVar22[0xaf] != 0) && (0 < piVar22[7])" (parenthesized_expression "(piVar22[0xaf] != 0)" (( "(") (binary_expression "piVar22[0xaf] != 0" (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(0 < piVar22[7])" (( "(") (binary_expression "0 < piVar22[7]" (number_literal "0") (< "<") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]"))) () ")"))) () ")")) (compound_statement "{\n          uVar45 = 0;\n          iVar4 = piVar22[6];\n          iVar5 = 0;\n          pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }\n        }" ({ "{") (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = piVar22[6];" (assignment_expression "iVar4 = piVar22[6]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9c50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9c50)" (( "(") (binary_expression "puVar38 + 0x2b9c50" (identifier "puVar38") (+ "+") (number_literal "0x2b9c50")) () ")"))))) (; ";")) (while_statement "while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }" (while "while") (parenthesized_expression "(iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0)" (( "(") (comma_expression "iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0" (assignment_expression "iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26)" (identifier "iVar6") (= "=") (call_expression "(*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(piVar22,0,iVar5,iVar4,1,uVar26)" (( "(") (identifier "piVar22") (, ",") (number_literal "0") (, ",") (identifier "iVar5") (, ",") (identifier "iVar4") (, ",") (number_literal "1") (, ",") (identifier "uVar26") () ")")))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            iVar4 = piVar22[6];\n            iVar7 = 0;\n            if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }\n            iVar5 = iVar5 + 1;\n            pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n            if (piVar22[7] <= iVar5) break;\n          }" ({ "{") (expression_statement "iVar4 = piVar22[6];" (assignment_expression "iVar4 = piVar22[6]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar4) {\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n              do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);\n            }" ({ "{") (do_statement "do {\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              } while (iVar4 != iVar7);" (do "do") (compound_statement "{\n                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }\n                iVar7 = iVar7 + 1;\n                iVar6 = iVar6 + piVar22[0xb0] * 4;\n              }" ({ "{") (if_statement "if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }" (if "if") (parenthesized_expression "((*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45))" (( "(") (binary_expression "(*(int *)(piVar22[0xb4] + 0x34) != 0) &&\n                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)" (parenthesized_expression "(*(int *)(piVar22[0xb4] + 0x34) != 0)" (( "(") (binary_expression "*(int *)(piVar22[0xb4] + 0x34) != 0" (pointer_expression "*(int *)(piVar22[0xb4] + 0x34)" (* "*") (cast_expression "(int *)(piVar22[0xb4] + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22[0xb4] + 0x34)" (( "(") (binary_expression "piVar22[0xb4] + 0x34" (subscript_expression "piVar22[0xb4]" (identifier "piVar22") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)" (( "(") (binary_expression "*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45" (pointer_expression "*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(piVar22[0xb4] + 0x38) * 4" (pointer_expression "*(int *)(piVar22[0xb4] + 0x38)" (* "*") (cast_expression "(int *)(piVar22[0xb4] + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22[0xb4] + 0x38)" (( "(") (binary_expression "piVar22[0xb4] + 0x38" (subscript_expression "piVar22[0xb4]" (identifier "piVar22") ([ "[") (number_literal "0xb4") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (== "==") (cast_expression "(float)uVar45" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar45"))) () ")"))) () ")")) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);\n                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);\n                  aiStack_4168[0] = *piVar22;\n                  aiStack_4168[1] = piVar22[1];\n                  iStack_4150 = piVar22[8];\n                  aiStack_4168[2] = piVar22[0xaf];\n                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);\n                  if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }\n                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);\n                  (**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);\n                  goto LAB_000f1940;\n                }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);" (call_expression "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b97a0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b97a0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b97a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b97a0)" (( "(") (binary_expression "puVar38 + 0x2b97a0" (identifier "puVar38") (+ "+") (number_literal "0x2b97a0")) () ")"))))) () ")")) (argument_list "(piVar22,aiStack_4168)" (( "(") (identifier "piVar22") (, ",") (identifier "aiStack_4168") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);" (call_expression "(**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94e0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94e0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94e0)" (( "(") (binary_expression "puVar38 + 0x2b94e0" (identifier "puVar38") (+ "+") (number_literal "0x2b94e0")) () ")"))))) () ")")) (argument_list "(aiStack_4168,0,0x58)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "uStack_4158 = *(undefined8 *)(piVar22 + 0x92);" (assignment_expression "uStack_4158 = *(undefined8 *)(piVar22 + 0x92)" (identifier "uStack_4158") (= "=") (pointer_expression "*(undefined8 *)(piVar22 + 0x92)" (* "*") (cast_expression "(undefined8 *)(piVar22 + 0x92)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x92)" (( "(") (binary_expression "piVar22 + 0x92" (identifier "piVar22") (+ "+") (number_literal "0x92")) () ")"))))) (; ";")) (expression_statement "aiStack_4168[0] = *piVar22;" (assignment_expression "aiStack_4168[0] = *piVar22" (subscript_expression "aiStack_4168[0]" (identifier "aiStack_4168") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "aiStack_4168[1] = piVar22[1];" (assignment_expression "aiStack_4168[1] = piVar22[1]" (subscript_expression "aiStack_4168[1]" (identifier "aiStack_4168") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar22[1]" (identifier "piVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iStack_4150 = piVar22[8];" (assignment_expression "iStack_4150 = piVar22[8]" (identifier "iStack_4150") (= "=") (subscript_expression "piVar22[8]" (identifier "piVar22") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "aiStack_4168[2] = piVar22[0xaf];" (assignment_expression "aiStack_4168[2] = piVar22[0xaf]" (subscript_expression "aiStack_4168[2]" (identifier "aiStack_4168") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (expression_statement "dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);" (assignment_expression "dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" (identifier "dStack_4120") (= "=") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1a58" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (if_statement "if (iVar6 != 0) {\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar4 = piVar22[0xb4];\n                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);\n                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);\n                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);\n                    if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }\n                    if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }\n                  }" ({ "{") (expression_statement "iVar4 = piVar22[0xb4];" (assignment_expression "iVar4 = piVar22[0xb4]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0xb4]" (identifier "piVar22") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (expression_statement "dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);" (assignment_expression "dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" (identifier "dStack_4140") (= "=") (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 8) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(iVar4 + 8) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(iVar4 + 8) * 4" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);" (assignment_expression "dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" (identifier "dStack_4138") (= "=") (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x14) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(iVar4 + 0x14) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(iVar4 + 0x14) * 4" (pointer_expression "*(int *)(iVar4 + 0x14)" (* "*") (cast_expression "(int *)(iVar4 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);" (assignment_expression "dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" (identifier "dStack_4130") (= "=") (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x20) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(iVar4 + 0x20) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(iVar4 + 0x20) * 4" (pointer_expression "*(int *)(iVar4 + 0x20)" (* "*") (cast_expression "(int *)(iVar4 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar4 + 0x28) != 0) {\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" (* "*") (cast_expression "(int *)(iVar4 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x28)" (( "(") (binary_expression "iVar4 + 0x28" (identifier "iVar4") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);\n                    }" ({ "{") (expression_statement "dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);" (assignment_expression "dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" (identifier "dStack_4128") (= "=") (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x2c) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(iVar4 + 0x2c) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(iVar4 + 0x2c) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c)" (* "*") (cast_expression "(int *)(iVar4 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2c)" (( "(") (binary_expression "iVar4 + 0x2c" (identifier "iVar4") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar4 + 0x34) != 0) {\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x34) != 0" (pointer_expression "*(int *)(iVar4 + 0x34)" (* "*") (cast_expression "(int *)(iVar4 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      aiStack_4168[2] = 4;\n                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);\n                    }" ({ "{") (expression_statement "aiStack_4168[2] = 4;" (assignment_expression "aiStack_4168[2] = 4" (subscript_expression "aiStack_4168[2]" (identifier "aiStack_4168") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);" (assignment_expression "dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" (identifier "dStack_4120") (= "=") (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x38) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(iVar4 + 0x38) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(iVar4 + 0x38) * 4" (pointer_expression "*(int *)(iVar4 + 0x38)" (* "*") (cast_expression "(int *)(iVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar4 + 0x40) != 0) {\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x40) != 0" (pointer_expression "*(int *)(iVar4 + 0x40)" (* "*") (cast_expression "(int *)(iVar4 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x40)" (( "(") (binary_expression "iVar4 + 0x40" (identifier "iVar4") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);\n                    }" ({ "{") (expression_statement "dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);" (assignment_expression "dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" (identifier "dStack_4118") (= "=") (cast_expression "(double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" (* "*") (cast_expression "(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + *(int *)(iVar4 + 0x44) * 4)" (( "(") (binary_expression "iVar6 + *(int *)(iVar4 + 0x44) * 4" (identifier "iVar6") (+ "+") (binary_expression "*(int *)(iVar4 + 0x44) * 4" (pointer_expression "*(int *)(iVar4 + 0x44)" (* "*") (cast_expression "(int *)(iVar4 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x44)" (( "(") (binary_expression "iVar4 + 0x44" (identifier "iVar4") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92c0)" (( "(") (binary_expression "puVar38 + 0x2b92c0" (identifier "puVar38") (+ "+") (number_literal "0x2b92c0")) () ")"))))) () ")")) (argument_list "(piVar22,aiStack_4168,1,auStack_110c,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "aiStack_4168") (, ",") (number_literal "1") (, ",") (identifier "auStack_110c") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6640" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6640")) (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94c0)" (( "(") (binary_expression "puVar38 + 0x2b94c0" (identifier "puVar38") (+ "+") (number_literal "0x2b94c0")) () ")"))))) () ")")) (argument_list "(aiStack_4168,1,auStack_110c)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "1") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6630" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6630")) (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (goto_statement "goto LAB_000f1940;" (goto "goto") (statement_identifier "LAB_000f1940") (; ";")) (} "}"))) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar6 = iVar6 + piVar22[0xb0] * 4;" (assignment_expression "iVar6 = iVar6 + piVar22[0xb0] * 4" (identifier "iVar6") (= "=") (binary_expression "iVar6 + piVar22[0xb0] * 4" (identifier "iVar6") (+ "+") (binary_expression "piVar22[0xb0] * 4" (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != iVar7)" (( "(") (binary_expression "iVar4 != iVar7" (identifier "iVar4") (!= "!=") (identifier "iVar7")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9c50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9c50)" (( "(") (binary_expression "puVar38 + 0x2b9c50" (identifier "puVar38") (+ "+") (number_literal "0x2b9c50")) () ")"))))) (; ";")) (if_statement "if (piVar22[7] <= iVar5) break;" (if "if") (parenthesized_expression "(piVar22[7] <= iVar5)" (( "(") (binary_expression "piVar22[7] <= iVar5" (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")) (<= "<=") (identifier "iVar5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000f1940:\n        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);" (statement_identifier "LAB_000f1940") (: ":") (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93f0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b93f0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b93f0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b93f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93f0)" (( "(") (binary_expression "puVar38 + 0x2b93f0" (identifier "puVar38") (+ "+") (number_literal "0x2b93f0")) () ")"))))) () ")")) (argument_list "(piVar22,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "uVar26") () ")")))) (; ";"))) (if_statement "if (iVar4 == 0) {\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }\n        else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;\n          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);\n          if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }\n        }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)\n          ;" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99ac)" (( "(") (binary_expression "puVar38 + 0x2b99ac" (identifier "puVar38") (+ "+") (number_literal "0x2b99ac")) () ")"))))) () ")")) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)" (( "(") (identifier "piVar22") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6604" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6604")) () ")")))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b928c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b928c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b928c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b928c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b928c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b928c)" (( "(") (binary_expression "puVar38 + 0x2b928c" (identifier "puVar38") (+ "+") (number_literal "0x2b928c")) () ")"))))) () ")")) (argument_list "(uVar21)" (( "(") (identifier "uVar21") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n            dVar41 = (double)iVar4;\n            if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }\n            (**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));\n          }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b97a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b97a4)" (( "(") (binary_expression "puVar38 + 0x2b97a4" (identifier "puVar38") (+ "+") (number_literal "0x2b97a4")) () ")"))))) () ")")) (argument_list "(piVar22,0,uVar26)" (( "(") (identifier "piVar22") (, ",") (number_literal "0") (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n            }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,\n                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6628")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" (else "else") (compound_statement "{\n          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);\n          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);\n        }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b97a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b97a4)" (( "(") (binary_expression "puVar38 + 0x2b97a4" (identifier "puVar38") (+ "+") (number_literal "0x2b97a4")) () ")"))))) () ")")) (argument_list "(piVar22,0,uVar26)" (( "(") (identifier "piVar22") (, ",") (number_literal "0") (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6628" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6628")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6614" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6614")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b97a4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b97a4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b97a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b97a4)" (( "(") (binary_expression "puVar38 + 0x2b97a4" (identifier "puVar38") (+ "+") (number_literal "0x2b97a4")) () ")"))))) () ")")) (argument_list "(piVar22,puVar32,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "puVar32") (, ",") (identifier "uVar26") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (*piVar22 == 2) {\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }\n      else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" (if "if") (parenthesized_expression "(*piVar22 == 2)" (( "(") (binary_expression "*piVar22 == 2" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        dVar41 = (double)piVar22[9];\n        if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);\n        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;\n        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);\n        piVar24 = (int *)piVar22[10];\n        if (piVar22[9] < 1) goto LAB_000f19dc;\n        iVar5 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;\n        iVar6 = *(int *)(puVar38 + 0x2b8dd8);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar4 = 0;\n        do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);\n        iVar4 = piVar22[0xb7];\n      }" ({ "{") (expression_statement "dVar41 = (double)piVar22[9];" (assignment_expression "dVar41 = (double)piVar22[9]" (identifier "dVar41") (= "=") (cast_expression "(double)piVar22[9]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[9]" (identifier "piVar22") ([ "[") (number_literal "9") (] "]")))) (; ";")) (if_statement "if (piVar22[9] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(piVar22[9] < 0)" (( "(") (binary_expression "piVar22[9] < 0" (subscript_expression "piVar22[9]" (identifier "piVar22") ([ "[") (number_literal "9") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65ec" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x65ec")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65d0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x65d0")) () ")"))) (; ";")) (if_statement "if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;" (if "if") (parenthesized_expression "(0x400 < (uint)piVar22[9])" (( "(") (binary_expression "0x400 < (uint)piVar22[9]" (number_literal "0x400") (< "<") (cast_expression "(uint)piVar22[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar22[9]" (identifier "piVar22") ([ "[") (number_literal "9") (] "]")))) () ")")) (goto_statement "goto LAB_000f19dc;" (goto "goto") (statement_identifier "LAB_000f19dc") (; ";"))) (expression_statement "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);" (call_expression "(**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b97a0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b97a0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b97a0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b97a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b97a0)" (( "(") (binary_expression "puVar38 + 0x2b97a0" (identifier "puVar38") (+ "+") (number_literal "0x2b97a0")) () ")"))))) () ")")) (argument_list "(piVar22,aiStack_4168)" (( "(") (identifier "piVar22") (, ",") (identifier "aiStack_4168") () ")"))) (; ";")) (expression_statement "piVar24 = (int *)piVar22[10];" (assignment_expression "piVar24 = (int *)piVar22[10]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar22[10]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar22[10]" (identifier "piVar22") ([ "[") (number_literal "10") (] "]")))) (; ";")) (if_statement "if (piVar22[9] < 1) goto LAB_000f19dc;" (if "if") (parenthesized_expression "(piVar22[9] < 1)" (( "(") (binary_expression "piVar22[9] < 1" (subscript_expression "piVar22[9]" (identifier "piVar22") ([ "[") (number_literal "9") (] "]")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000f19dc;" (goto "goto") (statement_identifier "LAB_000f19dc") (; ";"))) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd8)" (( "(") (binary_expression "puVar38 + 0x2b8dd8" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd8")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804" (identifier "iVar8") (= "=") (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + 0x2804" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")")))) (+ "+") (number_literal "0x2804"))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd8)" (( "(") (binary_expression "puVar38 + 0x2b8dd8" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd8")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        } while (iVar9 < piVar22[9]);" (do "do") (compound_statement "{\n          piVar16 = piVar24;\n          piVar2 = aiStack_4168;\n          do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);\n          iVar9 = piVar18[5];\n          pcVar40 = *(code **)(puVar38 + 0x2b9d28);\n          piVar20[4] = *piVar16;\n          piVar20[5] = iVar9;\n          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);\n          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);\n          if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }\n          piVar24 = piVar24 + 0x16;\n          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);\n          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);\n          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);\n          iVar9 = iVar4 + 1;\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);\n          iVar4 = iVar9;\n        }" ({ "{") (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" (identifier "piVar16") (= "=") (identifier "piVar24")) (; ";")) (expression_statement "piVar2 = aiStack_4168;" (assignment_expression "piVar2 = aiStack_4168" (identifier "piVar2") (= "=") (identifier "aiStack_4168")) (; ";")) (do_statement "do {\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          } while (piVar16 != piVar24 + 0x14);" (do "do") (compound_statement "{\n            piVar20 = piVar2;\n            piVar18 = piVar16;\n            pdStack_4198 = (double *)auStack_210c;\n            piVar16 = piVar18 + 4;\n            iVar29 = piVar18[1];\n            iVar28 = piVar18[2];\n            iVar9 = piVar18[3];\n            *piVar20 = *piVar18;\n            piVar20[1] = iVar29;\n            piVar20[2] = iVar28;\n            piVar20[3] = iVar9;\n            piVar2 = piVar20 + 4;\n          }" ({ "{") (expression_statement "piVar20 = piVar2;" (assignment_expression "piVar20 = piVar2" (identifier "piVar20") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "piVar18 = piVar16;" (assignment_expression "piVar18 = piVar16" (identifier "piVar18") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "pdStack_4198 = (double *)auStack_210c;" (assignment_expression "pdStack_4198 = (double *)auStack_210c" (identifier "pdStack_4198") (= "=") (cast_expression "(double *)auStack_210c" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_210c"))) (; ";")) (expression_statement "piVar16 = piVar18 + 4;" (assignment_expression "piVar16 = piVar18 + 4" (identifier "piVar16") (= "=") (binary_expression "piVar18 + 4" (identifier "piVar18") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar29 = piVar18[1];" (assignment_expression "iVar29 = piVar18[1]" (identifier "iVar29") (= "=") (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar28 = piVar18[2];" (assignment_expression "iVar28 = piVar18[2]" (identifier "iVar28") (= "=") (subscript_expression "piVar18[2]" (identifier "piVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar9 = piVar18[3];" (assignment_expression "iVar9 = piVar18[3]" (identifier "iVar9") (= "=") (subscript_expression "piVar18[3]" (identifier "piVar18") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar20 = *piVar18;" (assignment_expression "*piVar20 = *piVar18" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (= "=") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (; ";")) (expression_statement "piVar20[1] = iVar29;" (assignment_expression "piVar20[1] = iVar29" (subscript_expression "piVar20[1]" (identifier "piVar20") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar29")) (; ";")) (expression_statement "piVar20[2] = iVar28;" (assignment_expression "piVar20[2] = iVar28" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar28")) (; ";")) (expression_statement "piVar20[3] = iVar9;" (assignment_expression "piVar20[3] = iVar9" (subscript_expression "piVar20[3]" (identifier "piVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar2 = piVar20 + 4;" (assignment_expression "piVar2 = piVar20 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar20 + 4" (identifier "piVar20") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar16 != piVar24 + 0x14)" (( "(") (binary_expression "piVar16 != piVar24 + 0x14" (identifier "piVar16") (!= "!=") (binary_expression "piVar24 + 0x14" (identifier "piVar24") (+ "+") (number_literal "0x14"))) () ")")) (; ";")) (expression_statement "iVar9 = piVar18[5];" (assignment_expression "iVar9 = piVar18[5]" (identifier "iVar9") (= "=") (subscript_expression "piVar18[5]" (identifier "piVar18") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d28);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d28)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d28)" (( "(") (binary_expression "puVar38 + 0x2b9d28" (identifier "puVar38") (+ "+") (number_literal "0x2b9d28")) () ")"))))) (; ";")) (expression_statement "piVar20[4] = *piVar16;" (assignment_expression "piVar20[4] = *piVar16" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "piVar20[5] = iVar9;" (assignment_expression "piVar20[5] = iVar9" (subscript_expression "piVar20[5]" (identifier "piVar20") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "(*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(auStack_110c,iVar5 + -0xad8,0x1000)" (( "(") (identifier "auStack_110c") (, ",") (binary_expression "iVar5 + -0xad8" (identifier "iVar5") (+ "+") (number_literal "-0xad8")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ab8)" (( "(") (binary_expression "puVar38 + 0x2b9ab8" (identifier "puVar38") (+ "+") (number_literal "0x2b9ab8")) () ")"))))) () ")")) (argument_list "(aiStack_4168,0,2,auStack_110c)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "0") (, ",") (number_literal "2") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d84)" (( "(") (binary_expression "puVar38 + 0x2b9d84" (identifier "puVar38") (+ "+") (number_literal "0x2b9d84")) () ")"))))) () ")")) (argument_list "(auStack_110c,iVar8,0x1000)" (( "(") (identifier "auStack_110c") (, ",") (identifier "iVar8") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ab8)" (( "(") (binary_expression "puVar38 + 0x2b9ab8" (identifier "puVar38") (+ "+") (number_literal "0x2b9ab8")) () ")"))))) () ")")) (argument_list "(aiStack_4168,1,2,auStack_110c)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d84)" (( "(") (binary_expression "puVar38 + 0x2b9d84" (identifier "puVar38") (+ "+") (number_literal "0x2b9d84")) () ")"))))) () ")")) (argument_list "(auStack_110c,iVar8,0x1000)" (( "(") (identifier "auStack_110c") (, ",") (identifier "iVar8") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ab8)" (( "(") (binary_expression "puVar38 + 0x2b9ab8" (identifier "puVar38") (+ "+") (number_literal "0x2b9ab8")) () ")"))))) () ")")) (argument_list "(aiStack_4168,2,2,auStack_110c)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "2") (, ",") (number_literal "2") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (if_statement "if (aiStack_4168[1] == 2) {\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }" (if "if") (parenthesized_expression "(aiStack_4168[1] == 2)" (( "(") (binary_expression "aiStack_4168[1] == 2" (subscript_expression "aiStack_4168[1]" (identifier "aiStack_4168") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);\n          }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);" (call_expression "(**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d84))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d84)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d84)" (( "(") (binary_expression "puVar38 + 0x2b9d84" (identifier "puVar38") (+ "+") (number_literal "0x2b9d84")) () ")"))))) () ")")) (argument_list "(auStack_110c,iVar8,0x1000)" (( "(") (identifier "auStack_110c") (, ",") (identifier "iVar8") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ab8)" (( "(") (binary_expression "puVar38 + 0x2b9ab8" (identifier "puVar38") (+ "+") (number_literal "0x2b9ab8")) () ")"))))) () ")")) (argument_list "(aiStack_4168,3,2,auStack_110c)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "3") (, ",") (number_literal "2") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d84);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d84)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d84)" (( "(") (binary_expression "puVar38 + 0x2b9d84" (identifier "puVar38") (+ "+") (number_literal "0x2b9d84")) () ")"))))) (; ";")) (if_statement "if (aiStack_4168[2] != 0) {\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }" (if "if") (parenthesized_expression "(aiStack_4168[2] != 0)" (( "(") (binary_expression "aiStack_4168[2] != 0" (subscript_expression "aiStack_4168[2]" (identifier "aiStack_4168") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*pcVar40)(auStack_110c,iVar8,0x1000);\n            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);\n            pcVar40 = *(code **)(puVar38 + 0x2b9d84);\n          }" ({ "{") (expression_statement "(*pcVar40)(auStack_110c,iVar8,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar8,0x1000)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(auStack_110c,iVar8,0x1000)" (( "(") (identifier "auStack_110c") (, ",") (identifier "iVar8") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ab8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ab8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ab8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ab8)" (( "(") (binary_expression "puVar38 + 0x2b9ab8" (identifier "puVar38") (+ "+") (number_literal "0x2b9ab8")) () ")"))))) () ")")) (argument_list "(aiStack_4168,4,2,auStack_110c)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "4") (, ",") (number_literal "2") (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9d84);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9d84)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9d84)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d84)" (( "(") (binary_expression "puVar38 + 0x2b9d84" (identifier "puVar38") (+ "+") (number_literal "0x2b9d84")) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar24 = piVar24 + 0x16;" (assignment_expression "piVar24 = piVar24 + 0x16" (identifier "piVar24") (= "=") (binary_expression "piVar24 + 0x16" (identifier "piVar24") (+ "+") (number_literal "0x16"))) (; ";")) (expression_statement "(*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);" (call_expression "(*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(auStack_110c,iVar6 + -0x6e0,0x1000)" (( "(") (identifier "auStack_110c") (, ",") (binary_expression "iVar6 + -0x6e0" (identifier "iVar6") (+ "+") (number_literal "-0x6e0")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92c0)" (( "(") (binary_expression "puVar38 + 0x2b92c0" (identifier "puVar38") (+ "+") (number_literal "0x2b92c0")) () ")"))))) () ")")) (argument_list "(piVar22,aiStack_4168,1,auStack_410c,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "aiStack_4168") (, ",") (number_literal "1") (, ",") (identifier "auStack_410c") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);" (call_expression "(**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94c0)" (( "(") (binary_expression "puVar38 + 0x2b94c0" (identifier "puVar38") (+ "+") (number_literal "0x2b94c0")) () ")"))))) () ")")) (argument_list "(aiStack_4168,1,pdStack_4198)" (( "(") (identifier "aiStack_4168") (, ",") (number_literal "1") (, ",") (identifier "pdStack_4198") () ")"))) (; ";")) (expression_statement "iVar9 = iVar4 + 1;" (assignment_expression "iVar9 = iVar4 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),\n                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar7 + -0x65c0" (identifier "iVar7") (+ "+") (number_literal "-0x65c0")) (, ",") (cast_expression "(int)((ulonglong)(double)iVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(double)iVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)(double)iVar4 >> 0x20" (cast_expression "(ulonglong)(double)iVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84((double)iVar4,0)" (identifier "SUB84") (argument_list "((double)iVar4,0)" (( "(") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4")) (, ",") (number_literal "0") () ")"))) (, ",") (identifier "auStack_110c") (, ",") (identifier "pdStack_4198") (, ",") (identifier "auStack_410c") () ")"))) (; ";")) (expression_statement "iVar4 = iVar9;" (assignment_expression "iVar4 = iVar9" (identifier "iVar4") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < piVar22[9])" (( "(") (binary_expression "iVar9 < piVar22[9]" (identifier "iVar9") (< "<") (subscript_expression "piVar22[9]" (identifier "piVar22") ([ "[") (number_literal "9") (] "]"))) () ")")) (; ";")) (expression_statement "iVar4 = piVar22[0xb7];" (assignment_expression "iVar4 = piVar22[0xb7]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0xb7]" (identifier "piVar22") ([ "[") (number_literal "0xb7") (] "]"))) (; ";")) (} "}")) (else_clause "else {\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" (else "else") (compound_statement "{\nLAB_000f19dc:\n        iVar4 = piVar22[0xb7];\n      }" ({ "{") (labeled_statement "LAB_000f19dc:\n        iVar4 = piVar22[0xb7];" (statement_identifier "LAB_000f19dc") (: ":") (expression_statement "iVar4 = piVar22[0xb7];" (assignment_expression "iVar4 = piVar22[0xb7]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0xb7]" (identifier "piVar22") ([ "[") (number_literal "0xb7") (] "]"))) (; ";"))) (} "}")))) (expression_statement "pdStack_4198 = (double *)auStack_210c;" (assignment_expression "pdStack_4198 = (double *)auStack_210c" (identifier "pdStack_4198") (= "=") (cast_expression "(double *)auStack_210c" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_210c"))) (; ";")) (if_statement "if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }" (if "if") (parenthesized_expression "((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0)" (( "(") (binary_expression "(double)CONCAT44(piVar22[0xb6],iVar4) != 0.0" (cast_expression "(double)CONCAT44(piVar22[0xb6],iVar4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(piVar22[0xb6],iVar4)" (identifier "CONCAT44") (argument_list "(piVar22[0xb6],iVar4)" (( "(") (subscript_expression "piVar22[0xb6]" (identifier "piVar22") ([ "[") (number_literal "0xb6") (] "]")) (, ",") (identifier "iVar4") () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x65ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x65ac")) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(double *)(piVar22 + 0xb8) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }" (if "if") (parenthesized_expression "(*(double *)(piVar22 + 0xb8) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0xb8) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xb8)" (* "*") (cast_expression "(double *)(piVar22 + 0xb8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0xb8)" (( "(") (binary_expression "piVar22 + 0xb8" (identifier "piVar22") (+ "+") (number_literal "0xb8")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -26000" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-26000")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (; ";")) (if_statement "if (*(double *)(piVar22 + 0xba) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" (if "if") (parenthesized_expression "(*(double *)(piVar22 + 0xba) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0xba) != 0.0" (pointer_expression "*(double *)(piVar22 + 0xba)" (* "*") (cast_expression "(double *)(piVar22 + 0xba)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0xba)" (( "(") (binary_expression "piVar22 + 0xba" (identifier "piVar22") (+ "+") (number_literal "0xba")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6570" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6570")) () ")"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);" (assignment_expression "uVar21 = (*pcVar40)(0x23,piVar22[0x7e])" (identifier "uVar21") (= "=") (call_expression "(*pcVar40)(0x23,piVar22[0x7e])" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(0x23,piVar22[0x7e])" (( "(") (number_literal "0x23") (, ",") (subscript_expression "piVar22[0x7e]" (identifier "piVar22") ([ "[") (number_literal "0x7e") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6550" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6550")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (if_statement "if (*(double *)(piVar22 + 100) != 0.0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }" (if "if") (parenthesized_expression "(*(double *)(piVar22 + 100) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 100) != 0.0" (pointer_expression "*(double *)(piVar22 + 100)" (* "*") (cast_expression "(double *)(piVar22 + 100)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 100)" (( "(") (binary_expression "piVar22 + 100" (identifier "piVar22") (+ "+") (number_literal "100")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6538" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6538")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }" (if "if") (parenthesized_expression "((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0))" (( "(") (binary_expression "(((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)" (parenthesized_expression "(((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0))" (( "(") (binary_expression "((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||\n          (*(double *)(piVar22 + 0x72) != 0.0)" (parenthesized_expression "((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0))" (( "(") (binary_expression "(*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)" (parenthesized_expression "(*(double *)(piVar22 + 0x66) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0x66) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x66)" (* "*") (cast_expression "(double *)(piVar22 + 0x66)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x66)" (( "(") (binary_expression "piVar22 + 0x66" (identifier "piVar22") (+ "+") (number_literal "0x66")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (|| "||") (parenthesized_expression "(*(double *)(piVar22 + 0x6c) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0x6c) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x6c)" (* "*") (cast_expression "(double *)(piVar22 + 0x6c)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x6c)" (( "(") (binary_expression "piVar22 + 0x6c" (identifier "piVar22") (+ "+") (number_literal "0x6c")) () ")")))) (!= "!=") (number_literal "0.0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(double *)(piVar22 + 0x72) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0x72) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x72)" (* "*") (cast_expression "(double *)(piVar22 + 0x72)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x72)" (( "(") (binary_expression "piVar22 + 0x72" (identifier "piVar22") (+ "+") (number_literal "0x72")) () ")")))) (!= "!=") (number_literal "0.0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(double *)(piVar22 + 0x78) != 0.0)" (( "(") (binary_expression "*(double *)(piVar22 + 0x78) != 0.0" (pointer_expression "*(double *)(piVar22 + 0x78)" (* "*") (cast_expression "(double *)(piVar22 + 0x78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x78)" (( "(") (binary_expression "piVar22 + 0x78" (identifier "piVar22") (+ "+") (number_literal "0x78")) () ")")))) (!= "!=") (number_literal "0.0")) () ")"))) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6528" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6528")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],\n                   *(undefined8 *)(piVar22 + 0x68))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6514" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6514")) (, ",") (subscript_expression "piVar22[0x66]" (identifier "piVar22") ([ "[") (number_literal "0x66") (] "]")) (, ",") (subscript_expression "piVar22[0x67]" (identifier "piVar22") ([ "[") (number_literal "0x67") (] "]")) (, ",") (pointer_expression "*(undefined8 *)(piVar22 + 0x68)" (* "*") (cast_expression "(undefined8 *)(piVar22 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x68)" (( "(") (binary_expression "piVar22 + 0x68" (identifier "piVar22") (+ "+") (number_literal "0x68")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],\n                   *(undefined8 *)(piVar22 + 0x6e))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x64f8")) (, ",") (subscript_expression "piVar22[0x6c]" (identifier "piVar22") ([ "[") (number_literal "0x6c") (] "]")) (, ",") (subscript_expression "piVar22[0x6d]" (identifier "piVar22") ([ "[") (number_literal "0x6d") (] "]")) (, ",") (pointer_expression "*(undefined8 *)(piVar22 + 0x6e)" (* "*") (cast_expression "(undefined8 *)(piVar22 + 0x6e)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x6e)" (( "(") (binary_expression "piVar22 + 0x6e" (identifier "piVar22") (+ "+") (number_literal "0x6e")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],\n                   *(undefined8 *)(piVar22 + 0x74))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64dc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x64dc")) (, ",") (subscript_expression "piVar22[0x72]" (identifier "piVar22") ([ "[") (number_literal "0x72") (] "]")) (, ",") (subscript_expression "piVar22[0x73]" (identifier "piVar22") ([ "[") (number_literal "0x73") (] "]")) (, ",") (pointer_expression "*(undefined8 *)(piVar22 + 0x74)" (* "*") (cast_expression "(undefined8 *)(piVar22 + 0x74)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x74)" (( "(") (binary_expression "piVar22 + 0x74" (identifier "piVar22") (+ "+") (number_literal "0x74")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],\n                   *(undefined8 *)(piVar22 + 0x7a))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x64c0")) (, ",") (subscript_expression "piVar22[0x78]" (identifier "piVar22") ([ "[") (number_literal "0x78") (] "]")) (, ",") (subscript_expression "piVar22[0x79]" (identifier "piVar22") ([ "[") (number_literal "0x79") (] "]")) (, ",") (pointer_expression "*(undefined8 *)(piVar22 + 0x7a)" (* "*") (cast_expression "(undefined8 *)(piVar22 + 0x7a)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar22 + 0x7a)" (( "(") (binary_expression "piVar22 + 0x7a" (identifier "piVar22") (+ "+") (number_literal "0x7a")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = piVar22[0x8e];" (assignment_expression "iVar5 = piVar22[0x8e]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0x8e]" (identifier "piVar22") ([ "[") (number_literal "0x8e") (] "]"))) (; ";")) (expression_statement "iVar4 = piVar22[0x8f];" (assignment_expression "iVar4 = piVar22[0x8f]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0x8f]" (identifier "piVar22") ([ "[") (number_literal "0x8f") (] "]"))) (; ";")) (if_statement "if (iVar5 * iVar4 != 0) {\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }" (if "if") (parenthesized_expression "(iVar5 * iVar4 != 0)" (( "(") (binary_expression "iVar5 * iVar4 != 0" (binary_expression "iVar5 * iVar4" (identifier "iVar5") (* "*") (identifier "iVar4")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);\n      }" ({ "{") (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" (identifier "dVar41") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)iVar4;" (assignment_expression "dVar47 = (double)iVar4" (identifier "dVar47") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91])" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x64a4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x64a4")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") (, ",") (cast_expression "(double)piVar22[0x90]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[0x90]" (identifier "piVar22") ([ "[") (number_literal "0x90") (] "]"))) (, ",") (cast_expression "(double)piVar22[0x91]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[0x91]" (identifier "piVar22") ([ "[") (number_literal "0x91") (] "]"))) () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92c0)" (( "(") (binary_expression "puVar38 + 0x2b92c0" (identifier "puVar38") (+ "+") (number_literal "0x2b92c0")) () ")"))))) () ")")) (argument_list "(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26)" (( "(") (identifier "piVar22") (, ",") (binary_expression "piVar22 + 0xcdc" (identifier "piVar22") (+ "+") (number_literal "0xcdc")) (, ",") (number_literal "1") (, ",") (identifier "auStack_410c") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6478" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6478")) (, ",") (identifier "auStack_410c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92c0)" (( "(") (binary_expression "puVar38 + 0x2b92c0" (identifier "puVar38") (+ "+") (number_literal "0x2b92c0")) () ")"))))) () ")")) (argument_list "(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26)" (( "(") (identifier "piVar22") (, ",") (binary_expression "piVar22 + 0x22" (identifier "piVar22") (+ "+") (number_literal "0x22")) (, ",") (number_literal "1") (, ",") (identifier "auStack_410c") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6464" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6464")) (, ",") (identifier "auStack_410c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92c0)" (( "(") (binary_expression "puVar38 + 0x2b92c0" (identifier "puVar38") (+ "+") (number_literal "0x2b92c0")) () ")"))))) () ")")) (argument_list "(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26)" (( "(") (identifier "piVar22") (, ",") (binary_expression "piVar22 + 0x38" (identifier "piVar22") (+ "+") (number_literal "0x38")) (, ",") (number_literal "1") (, ",") (identifier "auStack_410c") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x644c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x644c")) (, ",") (identifier "auStack_410c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92c0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92c0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92c0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92c0)" (( "(") (binary_expression "puVar38 + 0x2b92c0" (identifier "puVar38") (+ "+") (number_literal "0x2b92c0")) () ")"))))) () ")")) (argument_list "(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26)" (( "(") (identifier "piVar22") (, ",") (binary_expression "piVar22 + 0x4e" (identifier "piVar22") (+ "+") (number_literal "0x4e")) (, ",") (number_literal "1") (, ",") (identifier "auStack_410c") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6438" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6438")) (, ",") (identifier "auStack_410c") () ")"))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96])" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0x24,piVar22[0x96])" (( "(") (number_literal "0x24") (, ",") (subscript_expression "piVar22[0x96]" (identifier "piVar22") ([ "[") (number_literal "0x96") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x641c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x641c")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95])" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0x38,piVar22[0x95])" (( "(") (number_literal "0x38") (, ",") (subscript_expression "piVar22[0x95]" (identifier "piVar22") ([ "[") (number_literal "0x95") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6408" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6408")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99])" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0xd,piVar22[0x99])" (( "(") (number_literal "0xd") (, ",") (subscript_expression "piVar22[0x99]" (identifier "piVar22") ([ "[") (number_literal "0x99") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63f4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x63f4")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "iVar5 = piVar22[0x8a];" (assignment_expression "iVar5 = piVar22[0x8a]" (identifier "iVar5") (= "=") (subscript_expression "piVar22[0x8a]" (identifier "piVar22") ([ "[") (number_literal "0x8a") (] "]"))) (; ";")) (expression_statement "iVar4 = piVar22[0x8b];" (assignment_expression "iVar4 = piVar22[0x8b]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0x8b]" (identifier "piVar22") ([ "[") (number_literal "0x8b") (] "]"))) (; ";")) (if_statement "if (iVar5 == 0) {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }\n      else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }\n        dVar41 = 0.0;\n        if (iVar7 != 0) goto LAB_000f29c0;\nLAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" ({ "{") (expression_statement "iVar6 = piVar22[0x8c];" (assignment_expression "iVar6 = piVar22[0x8c]" (identifier "iVar6") (= "=") (subscript_expression "piVar22[0x8c]" (identifier "piVar22") ([ "[") (number_literal "0x8c") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar22[0x8d];" (assignment_expression "iVar7 = piVar22[0x8d]" (identifier "iVar7") (= "=") (subscript_expression "piVar22[0x8d]" (identifier "piVar22") ([ "[") (number_literal "0x8d") (] "]"))) (; ";")) (if_statement "if ((iVar4 != 0) || (iVar6 != 0)) {\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }" (if "if") (parenthesized_expression "((iVar4 != 0) || (iVar6 != 0))" (( "(") (binary_expression "(iVar4 != 0) || (iVar6 != 0)" (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          dVar41 = 0.0;\n          goto LAB_000f29c0;\n        }" ({ "{") (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" (identifier "dVar41") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000f29c0;" (goto "goto") (statement_identifier "LAB_000f29c0") (; ";")) (} "}"))) (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" (identifier "dVar41") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_000f29c0;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f29c0;" (goto "goto") (statement_identifier "LAB_000f29c0") (; ";"))) (labeled_statement "LAB_000f1db8:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);" (statement_identifier "LAB_000f1db8") (: ":") (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" (else "else") (compound_statement "{\n        iVar6 = piVar22[0x8c];\n        iVar7 = piVar22[0x8d];\n        dVar41 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\nLAB_000f29c0:\n        dVar47 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);\n        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }\n      }" ({ "{") (expression_statement "iVar6 = piVar22[0x8c];" (assignment_expression "iVar6 = piVar22[0x8c]" (identifier "iVar6") (= "=") (subscript_expression "piVar22[0x8c]" (identifier "piVar22") ([ "[") (number_literal "0x8c") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar22[0x8d];" (assignment_expression "iVar7 = piVar22[0x8d]" (identifier "iVar7") (= "=") (subscript_expression "piVar22[0x8d]" (identifier "piVar22") ([ "[") (number_literal "0x8d") (] "]"))) (; ";")) (expression_statement "dVar41 = (double)iVar5;" (assignment_expression "dVar41 = (double)iVar5" (identifier "dVar41") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (labeled_statement "LAB_000f29c0:\n        dVar47 = (double)iVar4;" (statement_identifier "LAB_000f29c0") (: ":") (expression_statement "dVar47 = (double)iVar4;" (assignment_expression "dVar47 = (double)iVar4" (identifier "dVar47") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";"))) (if_statement "if (iVar4 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63e4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x63e4")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") (, ",") (cast_expression "(double)iVar6" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar6")) (, ",") (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7")) () ")"))) (; ";")) (if_statement "if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))\n        {\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }" (if "if") (parenthesized_expression "((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))" (( "(") (binary_expression "(piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0)" (parenthesized_expression "(piVar22[0x8c] != 0)" (( "(") (binary_expression "piVar22[0x8c] != 0" (subscript_expression "piVar22[0x8c]" (identifier "piVar22") ([ "[") (number_literal "0x8c") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0)" (( "(") (comma_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (, ",") (binary_expression "piVar22[0x8d] != 0" (subscript_expression "piVar22[0x8d]" (identifier "piVar22") ([ "[") (number_literal "0x8d") (] "]")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          dVar41 = (double)piVar22[0x8c];\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);\n          goto LAB_000f1db8;\n        }" ({ "{") (expression_statement "dVar41 = (double)piVar22[0x8c];" (assignment_expression "dVar41 = (double)piVar22[0x8c]" (identifier "dVar41") (= "=") (cast_expression "(double)piVar22[0x8c]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[0x8c]" (identifier "piVar22") ([ "[") (number_literal "0x8c") (] "]")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0),(double)piVar22[0x8d])" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x63b8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x63b8")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(double)piVar22[0x8d]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[0x8d]" (identifier "piVar22") ([ "[") (number_literal "0x8d") (] "]"))) () ")"))) (; ";")) (goto_statement "goto LAB_000f1db8;" (goto "goto") (statement_identifier "LAB_000f1db8") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);" (assignment_expression "uVar21 = (*pcVar40)(0x15,piVar22[0x9a])" (identifier "uVar21") (= "=") (call_expression "(*pcVar40)(0x15,piVar22[0x9a])" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(0x15,piVar22[0x9a])" (( "(") (number_literal "0x15") (, ",") (subscript_expression "piVar22[0x9a]" (identifier "piVar22") ([ "[") (number_literal "0x9a") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6394" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6394")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "iVar4 = piVar22[0x9c];" (assignment_expression "iVar4 = piVar22[0x9c]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0x9c]" (identifier "piVar22") ([ "[") (number_literal "0x9c") (] "]"))) (; ";")) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);\n      }" ({ "{") (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e]);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),(double)piVar22[0x9e])" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6384" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6384")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(double)piVar22[0x9e]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[0x9e]" (identifier "piVar22") ([ "[") (number_literal "0x9e") (] "]"))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = piVar22[0x9f];" (assignment_expression "iVar4 = piVar22[0x9f]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0x9f]" (identifier "piVar22") ([ "[") (number_literal "0x9f") (] "]"))) (; ";")) (if_statement "if (iVar4 != 1) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" (if "if") (parenthesized_expression "(iVar4 != 1)" (( "(") (binary_expression "iVar4 != 1" (identifier "iVar4") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" ({ "{") (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x636c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x636c")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = piVar22[0x9d];" (assignment_expression "iVar4 = piVar22[0x9d]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0x9d]" (identifier "piVar22") ([ "[") (number_literal "0x9d") (] "]"))) (; ";")) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" ({ "{") (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6354" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6354")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = piVar22[0x9b];" (assignment_expression "iVar4 = piVar22[0x9b]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0x9b]" (identifier "piVar22") ([ "[") (number_literal "0x9b") (] "]"))) (; ";")) (if_statement "if (piVar22[0xcda] == 0) {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }\n      else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" (if "if") (parenthesized_expression "(piVar22[0xcda] == 0)" (( "(") (binary_expression "piVar22[0xcda] == 0" (subscript_expression "piVar22[0xcda]" (identifier "piVar22") ([ "[") (number_literal "0xcda") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\n        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n        if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }\n      }" ({ "{") (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9764);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9764)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9764)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9764)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9764)" (( "(") (binary_expression "puVar38 + 0x2b9764" (identifier "puVar38") (+ "+") (number_literal "0x2b9764")) () ")"))))) (; ";")) (if_statement "if (piVar22[0xcd9] != 0) goto LAB_000f1e64;" (if "if") (parenthesized_expression "(piVar22[0xcd9] != 0)" (( "(") (binary_expression "piVar22[0xcd9] != 0" (subscript_expression "piVar22[0xcd9]" (identifier "piVar22") ([ "[") (number_literal "0xcd9") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f1e64;" (goto "goto") (statement_identifier "LAB_000f1e64") (; ";"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (; ";")) (if_statement "if (iVar4 != 0) {\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = (double)iVar4;\n          if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }\n          (**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));\n          goto LAB_000f1ed4;\n        }" ({ "{") (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)\n                     ,SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6324" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6324")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (goto_statement "goto LAB_000f1ed4;" (goto "goto") (statement_identifier "LAB_000f1ed4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" (else "else") (compound_statement "{\n        pcVar40 = *(code **)(puVar38 + 0x2b9764);\nLAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)iVar5;\n        if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);\nLAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);\n      }" ({ "{") (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9764);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9764)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9764)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9764)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9764)" (( "(") (binary_expression "puVar38 + 0x2b9764" (identifier "puVar38") (+ "+") (number_literal "0x2b9764")) () ")"))))) (; ";")) (labeled_statement "LAB_000f1e64:\n        iVar5 = (*pcVar40)(piVar22);" (statement_identifier "LAB_000f1e64") (: ":") (expression_statement "iVar5 = (*pcVar40)(piVar22);" (assignment_expression "iVar5 = (*pcVar40)(piVar22)" (identifier "iVar5") (= "=") (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";"))) (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)iVar5;" (assignment_expression "dVar47 = (double)iVar5" (identifier "dVar47") (= "=") (cast_expression "(double)iVar5" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0),dVar47)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6340" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6340")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar47") () ")"))) (; ";")) (labeled_statement "LAB_000f1ed4:\n        pcVar40 = *(code **)(puVar38 + 0x2b924c);" (statement_identifier "LAB_000f1ed4") (: ":") (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b924c);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b924c)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar21 = (*pcVar40)(0xe,piVar22[2]);" (assignment_expression "uVar21 = (*pcVar40)(0xe,piVar22[2])" (identifier "uVar21") (= "=") (call_expression "(*pcVar40)(0xe,piVar22[2])" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(0xe,piVar22[2])" (( "(") (number_literal "0xe") (, ",") (subscript_expression "piVar22[2]" (identifier "piVar22") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6314" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6314")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "iVar4 = piVar22[3];" (assignment_expression "iVar4 = piVar22[3]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[3]" (identifier "piVar22") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar4 != 0) {\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        dVar41 = (double)iVar4;\n        if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));\n      }" ({ "{") (expression_statement "dVar41 = (double)iVar4;" (assignment_expression "dVar41 = (double)iVar4" (identifier "dVar41") (= "=") (cast_expression "(double)iVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (iVar4 < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0));" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),\n                   SUB84(dVar41,0))" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6300" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6300")) (, ",") (cast_expression "(int)((ulonglong)dVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar41")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar41,0)" (identifier "SUB84") (argument_list "(dVar41,0)" (( "(") (identifier "dVar41") (, ",") (number_literal "0") () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4])" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(0x36,piVar22[4])" (( "(") (number_literal "0x36") (, ",") (subscript_expression "piVar22[4]" (identifier "piVar22") ([ "[") (number_literal "4") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ec" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x62ec")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (if_statement "if (piVar22[0x81] != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }" (if "if") (parenthesized_expression "(piVar22[0x81] != 0)" (( "(") (binary_expression "piVar22[0x81] != 0" (subscript_expression "piVar22[0x81]" (identifier "piVar22") ([ "[") (number_literal "0x81") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62d8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x62d8")) () ")"))) (; ";")) (} "}"))) (if_statement "if (piVar22[0x82] != 0) {\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }" (if "if") (parenthesized_expression "(piVar22[0x82] != 0)" (( "(") (binary_expression "piVar22[0x82] != 0" (subscript_expression "piVar22[0x82]" (identifier "piVar22") ([ "[") (number_literal "0x82") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();\n        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);\n        pcVar25 = (char *)piVar22[0x82];\n        iVar5 = (int)*pcVar25;\n        if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }\n        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);\n      }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b96bc))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b96bc))()" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b96bc))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96bc))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b96bc)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b96bc)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b96bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b96bc)" (( "(") (binary_expression "puVar38 + 0x2b96bc" (identifier "puVar38") (+ "+") (number_literal "0x2b96bc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);" (call_expression "(**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9974))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9974)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9974)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9974)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9974)" (( "(") (binary_expression "puVar38 + 0x2b9974" (identifier "puVar38") (+ "+") (number_literal "0x2b9974")) () ")"))))) () ")")) (argument_list "(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62c8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x62c8")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62c0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x62c0")) () ")"))) (; ";")) (expression_statement "pcVar25 = (char *)piVar22[0x82];" (assignment_expression "pcVar25 = (char *)piVar22[0x82]" (identifier "pcVar25") (= "=") (cast_expression "(char *)piVar22[0x82]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar22[0x82]" (identifier "piVar22") ([ "[") (number_literal "0x82") (] "]")))) (; ";")) (expression_statement "iVar5 = (int)*pcVar25;" (assignment_expression "iVar5 = (int)*pcVar25" (identifier "iVar5") (= "=") (cast_expression "(int)*pcVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")))) (; ";")) (if_statement "if (iVar5 != 0) {\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar9 = *(int *)(puVar38 + 0x2b8e38);\n          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n          iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar7 = *(int *)(puVar38 + 0x2b8dd0);\n          dVar47 = dVar41;\n          do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar9 = *(int *)(puVar38 + 0x2b8e38)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")"))))) (; ";")) (expression_statement "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "dVar47 = dVar41;" (assignment_expression "dVar47 = dVar41" (identifier "dVar47") (= "=") (identifier "dVar41")) (; ";")) (do_statement "do {\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          } while (iVar5 != 0);" (do "do") (compound_statement "{\n            iVar28 = 1;\n            pcVar37 = pcVar25;\n            if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }\n            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);\n            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);\n            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);\n            (**(code **)(puVar38 + 0x2b9a90))(uVar21);\n            if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }\n            iVar5 = (int)pcVar37[1];\n            pcVar25 = pcVar37 + 1;\n          }" ({ "{") (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" (identifier "iVar28") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar37 = pcVar25;" (assignment_expression "pcVar37 = pcVar25" (identifier "pcVar37") (= "=") (identifier "pcVar25")) (; ";")) (if_statement "if (1 < (iVar5 + 1U & 0xff)) {\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }" (if "if") (parenthesized_expression "(1 < (iVar5 + 1U & 0xff))" (( "(") (binary_expression "1 < (iVar5 + 1U & 0xff)" (number_literal "1") (< "<") (parenthesized_expression "(iVar5 + 1U & 0xff)" (( "(") (binary_expression "iVar5 + 1U & 0xff" (binary_expression "iVar5 + 1U" (identifier "iVar5") (+ "+") (number_literal "1U")) (& "&") (number_literal "0xff")) () ")"))) () ")")) (compound_statement "{\n              do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);\n              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;\n            }" ({ "{") (do_statement "do {\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);" (do "do") (compound_statement "{\n                pcVar37 = pcVar37 + 1;\n                if ((byte)(*pcVar37 + 1U) < 2) break;\n              }" ({ "{") (expression_statement "pcVar37 = pcVar37 + 1;" (assignment_expression "pcVar37 = pcVar37 + 1" (identifier "pcVar37") (= "=") (binary_expression "pcVar37 + 1" (identifier "pcVar37") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((byte)(*pcVar37 + 1U) < 2) break;" (if "if") (parenthesized_expression "((byte)(*pcVar37 + 1U) < 2)" (( "(") (binary_expression "(byte)(*pcVar37 + 1U) < 2" (call_expression "(byte)(*pcVar37 + 1U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pcVar37 + 1U)" (( "(") (binary_expression "*pcVar37 + 1U" (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) (+ "+") (number_literal "1U")) () ")"))) (< "<") (number_literal "2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((uint)((int)pcVar37 - (int)pcVar25) < 0x1000)" (( "(") (binary_expression "(uint)((int)pcVar37 - (int)pcVar25) < 0x1000" (call_expression "(uint)((int)pcVar37 - (int)pcVar25)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pcVar37 - (int)pcVar25)" (( "(") (binary_expression "(int)pcVar37 - (int)pcVar25" (cast_expression "(int)pcVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar37")) (- "-") (cast_expression "(int)pcVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar25"))) () ")"))) (< "<") (number_literal "0x1000")) () ")")) (; ";")) (expression_statement "iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;" (assignment_expression "iVar28 = ((int)pcVar37 - (int)pcVar25) + 1" (identifier "iVar28") (= "=") (binary_expression "((int)pcVar37 - (int)pcVar25) + 1" (parenthesized_expression "((int)pcVar37 - (int)pcVar25)" (( "(") (binary_expression "(int)pcVar37 - (int)pcVar25" (cast_expression "(int)pcVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar37")) (- "-") (cast_expression "(int)pcVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar25"))) () ")")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d28))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d28)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d28)" (( "(") (binary_expression "puVar38 + 0x2b9d28" (identifier "puVar38") (+ "+") (number_literal "0x2b9d28")) () ")"))))) () ")")) (argument_list "(iVar4 + 0x2210,pcVar25,iVar28)" (( "(") (binary_expression "iVar4 + 0x2210" (identifier "iVar4") (+ "+") (number_literal "0x2210")) (, ",") (identifier "pcVar25") (, ",") (identifier "iVar28") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar6 + -0x62b0" (identifier "iVar6") (+ "+") (number_literal "-0x62b0")) (, ",") (binary_expression "iVar4 + 0x2210" (identifier "iVar4") (+ "+") (number_literal "0x2210")) () ")"))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9a90))(0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a90))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a90)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a90)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a90)" (( "(") (binary_expression "puVar38 + 0x2b9a90" (identifier "puVar38") (+ "+") (number_literal "0x2b9a90")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9400))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9400)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9400)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9400)" (( "(") (binary_expression "puVar38 + 0x2b9400" (identifier "puVar38") (+ "+") (number_literal "0x2b9400")) () ")"))))) () ")")) (argument_list "(iVar4,uVar26)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a90))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a90))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a90))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a90)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a90)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a90)" (( "(") (binary_expression "puVar38 + 0x2b9a90" (identifier "puVar38") (+ "+") (number_literal "0x2b9a90")) () ")"))))) () ")")) (argument_list "(uVar21)" (( "(") (identifier "uVar21") () ")"))) (; ";")) (if_statement "if (iVar5 == 0) {\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }\n            else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);\n            }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd8)" (( "(") (binary_expression "puVar38 + 0x2b8dd8" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd8")) () ")")))) (+ "+") (number_literal "-0x4bdc")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" (else "else") (compound_statement "{\n              dVar44 = (double)*(int *)(iVar5 + 0x3340);\n              if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }\n              dVar43 = (double)*(int *)(iVar5 + 0x3344);\n              if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }\n              (**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);\n              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);\n              (**(code **)(puVar38 + 0x2b9180))(iVar5);\n              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }\n              (**(code **)(puVar38 + 0x2b9438))(iVar5);\n            }" ({ "{") (expression_statement "dVar44 = (double)*(int *)(iVar5 + 0x3340);" (assignment_expression "dVar44 = (double)*(int *)(iVar5 + 0x3340)" (identifier "dVar44") (= "=") (cast_expression "(double)*(int *)(iVar5 + 0x3340)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar5 + 0x3340)" (* "*") (cast_expression "(int *)(iVar5 + 0x3340)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x3340)" (( "(") (binary_expression "iVar5 + 0x3340" (identifier "iVar5") (+ "+") (number_literal "0x3340")) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x3340) < 0) {\n                dVar44 = dVar44 + dVar47;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x3340) < 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x3340) < 0" (pointer_expression "*(int *)(iVar5 + 0x3340)" (* "*") (cast_expression "(int *)(iVar5 + 0x3340)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x3340)" (( "(") (binary_expression "iVar5 + 0x3340" (identifier "iVar5") (+ "+") (number_literal "0x3340")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                dVar44 = dVar44 + dVar47;\n              }" ({ "{") (expression_statement "dVar44 = dVar44 + dVar47;" (assignment_expression "dVar44 = dVar44 + dVar47" (identifier "dVar44") (= "=") (binary_expression "dVar44 + dVar47" (identifier "dVar44") (+ "+") (identifier "dVar47"))) (; ";")) (} "}"))) (expression_statement "dVar43 = (double)*(int *)(iVar5 + 0x3344);" (assignment_expression "dVar43 = (double)*(int *)(iVar5 + 0x3344)" (identifier "dVar43") (= "=") (cast_expression "(double)*(int *)(iVar5 + 0x3344)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar5 + 0x3344)" (* "*") (cast_expression "(int *)(iVar5 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x3344)" (( "(") (binary_expression "iVar5 + 0x3344" (identifier "iVar5") (+ "+") (number_literal "0x3344")) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x3344) < 0) {\n                dVar43 = dVar43 + dVar41;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x3344) < 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x3344) < 0" (pointer_expression "*(int *)(iVar5 + 0x3344)" (* "*") (cast_expression "(int *)(iVar5 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x3344)" (( "(") (binary_expression "iVar5 + 0x3344" (identifier "iVar5") (+ "+") (number_literal "0x3344")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                dVar43 = dVar43 + dVar41;\n              }" ({ "{") (expression_statement "dVar43 = dVar43 + dVar41;" (assignment_expression "dVar43 = dVar43 + dVar41" (identifier "dVar43") (= "=") (binary_expression "dVar43 + dVar41" (identifier "dVar43") (+ "+") (identifier "dVar41"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),\n                         dVar43,iVar5 + 0x2340)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar7 + -0x62a8" (identifier "iVar7") (+ "+") (number_literal "-0x62a8")) (, ",") (cast_expression "(int)((ulonglong)dVar44 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar44 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar44 >> 0x20" (cast_expression "(ulonglong)dVar44" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar44")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar44,0)" (identifier "SUB84") (argument_list "(dVar44,0)" (( "(") (identifier "dVar44") (, ",") (number_literal "0") () ")"))) (, ",") (identifier "dVar43") (, ",") (binary_expression "iVar5 + 0x2340" (identifier "iVar5") (+ "+") (number_literal "0x2340")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9500))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9500)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9500)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9500)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9500)" (( "(") (binary_expression "puVar38 + 0x2b9500" (identifier "puVar38") (+ "+") (number_literal "0x2b9500")) () ")"))))) () ")")) (argument_list "(iVar5,uVar26)" (( "(") (identifier "iVar5") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9180))(iVar5);" (call_expression "(**(code **)(puVar38 + 0x2b9180))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9180))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9180)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9180)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9180)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9180)" (( "(") (binary_expression "puVar38 + 0x2b9180" (identifier "puVar38") (+ "+") (number_literal "0x2b9180")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5)" (identifier "iVar28") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9dac))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9dac)" (( "(") (binary_expression "puVar38 + 0x2b9dac" (identifier "puVar38") (+ "+") (number_literal "0x2b9dac")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (while_statement "while (iVar28 != 0) {\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }" (while "while") (parenthesized_expression "(iVar28 != 0)" (( "(") (binary_expression "iVar28 != 0" (identifier "iVar28") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);\n                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);\n                if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }\n                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);\n              }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar8 + -0x6294,iVar28)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar8 + -0x6294" (identifier "iVar8") (+ "+") (number_literal "-0x6294")) (, ",") (identifier "iVar28") () ")"))) (; ";")) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26)" (identifier "iVar28") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b98e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b98e8)" (( "(") (binary_expression "puVar38 + 0x2b98e8" (identifier "puVar38") (+ "+") (number_literal "0x2b98e8")) () ")"))))) () ")")) (argument_list "(iVar5,iVar28,uVar26)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar28") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar28 != 0) {\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }" (if "if") (parenthesized_expression "(iVar28 != 0)" (( "(") (binary_expression "iVar28 != 0" (identifier "iVar28") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);\n                }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar9 + -0x18b8,iVar28)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar9 + -0x18b8" (identifier "iVar9") (+ "+") (number_literal "-0x18b8")) (, ",") (identifier "iVar28") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5)" (identifier "iVar28") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9dac))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9dac)" (( "(") (binary_expression "puVar38 + 0x2b9dac" (identifier "puVar38") (+ "+") (number_literal "0x2b9dac")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9438))(iVar5);" (call_expression "(**(code **)(puVar38 + 0x2b9438))(iVar5)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9438))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9438)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9438)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9438)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9438)" (( "(") (binary_expression "puVar38 + 0x2b9438" (identifier "puVar38") (+ "+") (number_literal "0x2b9438")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar5 = (int)pcVar37[1];" (assignment_expression "iVar5 = (int)pcVar37[1]" (identifier "iVar5") (= "=") (cast_expression "(int)pcVar37[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pcVar37[1]" (identifier "pcVar37") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pcVar25 = pcVar37 + 1;" (assignment_expression "pcVar25 = pcVar37 + 1" (identifier "pcVar25") (= "=") (binary_expression "pcVar37 + 1" (identifier "pcVar37") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9ad4))(iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9ad4))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ad4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ad4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ad4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ad4)" (( "(") (binary_expression "puVar38 + 0x2b9ad4" (identifier "puVar38") (+ "+") (number_literal "0x2b9ad4")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9268)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9268)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9268)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9268)" (( "(") (binary_expression "puVar38 + 0x2b9268" (identifier "puVar38") (+ "+") (number_literal "0x2b9268")) () ")"))))) () ")")) (argument_list "(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c)" (( "(") (identifier "pdStack_4198") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x628c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x628c")) () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b98e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b98e8)" (( "(") (binary_expression "puVar38 + 0x2b98e8" (identifier "puVar38") (+ "+") (number_literal "0x2b98e8")) () ")"))))) () ")")) (argument_list "(piVar22,pdStack_4198,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "pdStack_4198") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);\n        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);\n        if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6278" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6278")) () ")"))) (; ";")) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4)" (identifier "uVar36") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9824))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9824))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9824)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9824)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9824)" (( "(") (binary_expression "puVar38 + 0x2b9824" (identifier "puVar38") (+ "+") (number_literal "0x2b9824")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (0x50 < uVar36) {\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }" (if "if") (parenthesized_expression "(0x50 < uVar36)" (( "(") (binary_expression "0x50 < uVar36" (number_literal "0x50") (< "<") (identifier "uVar36")) () ")")) (compound_statement "{\n          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94e8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94e8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94e8)" (( "(") (binary_expression "puVar38 + 0x2b94e8" (identifier "puVar38") (+ "+") (number_literal "0x2b94e8")) () ")"))))) () ")")) (argument_list "(10,puVar32)" (( "(") (number_literal "10") (, ",") (identifier "puVar32") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")")))) (+ "+") (number_literal "-0x18b8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);" (assignment_expression "puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9da0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9da0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9da0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9da0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9da0)" (( "(") (binary_expression "puVar38 + 0x2b9da0" (identifier "puVar38") (+ "+") (number_literal "0x2b9da0")) () ")"))))) () ")")) (argument_list "(piVar22,aiStack_4168,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "aiStack_4168") (, ",") (identifier "uVar26") () ")"))))) (; ";")) (if_statement "if (puVar13 != (undefined8 *)0x0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" (if "if") (parenthesized_expression "(puVar13 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined8 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(puVar13);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" ({ "{") (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (identifier "uStack_416c") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d00))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d00)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d00)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d00)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d00)" (( "(") (binary_expression "puVar38 + 0x2b9d00" (identifier "puVar38") (+ "+") (number_literal "0x2b9d00")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x3688")) () ")")))) (; ";")) (if_statement "if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }" (if "if") (parenthesized_expression "(0 < aiStack_4168[0])" (( "(") (binary_expression "0 < aiStack_4168[0]" (number_literal "0") (< "<") (subscript_expression "aiStack_4168[0]" (identifier "aiStack_4168") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar4 = 0;\n          puVar39 = puVar13;\n          do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);\n        }" ({ "{") (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar39 = puVar13;" (assignment_expression "puVar39 = puVar13" (identifier "puVar39") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          } while (iVar4 < aiStack_4168[0]);" (do "do") (compound_statement "{\n            iVar4 = iVar4 + 1;\n            (**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n            puVar39 = puVar39 + 2;\n          }" ({ "{") (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);" (call_expression "(**(code **)(puVar38 + 0x2b9268))\n                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9268)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9268)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9268)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9268)" (( "(") (binary_expression "puVar38 + 0x2b9268" (identifier "puVar38") (+ "+") (number_literal "0x2b9268")) () ")"))))) () ")")) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1])" (( "(") (identifier "auStack_110c") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar5 + -0x6264" (identifier "iVar5") (+ "+") (number_literal "-0x6264")) (, ",") (identifier "iVar4") (, ",") (pointer_expression "*puVar39" (* "*") (identifier "puVar39")) (, ",") (subscript_expression "puVar39[1]" (identifier "puVar39") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9894))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9894)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9894)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9894)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9894)" (( "(") (binary_expression "puVar38 + 0x2b9894" (identifier "puVar38") (+ "+") (number_literal "0x2b9894")) () ")"))))) () ")")) (argument_list "(&uStack_416c,auStack_110c)" (( "(") (pointer_expression "&uStack_416c" (& "&") (identifier "uStack_416c")) (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (expression_statement "puVar39 = puVar39 + 2;" (assignment_expression "puVar39 = puVar39 + 2" (identifier "puVar39") (= "=") (binary_expression "puVar39 + 2" (identifier "puVar39") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 < aiStack_4168[0])" (( "(") (binary_expression "iVar4 < aiStack_4168[0]" (identifier "iVar4") (< "<") (subscript_expression "aiStack_4168[0]" (identifier "aiStack_4168") ([ "[") (number_literal "0") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(puVar13);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(puVar13)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x625c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x625c")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")")))) (+ "+") (number_literal "-0x18b8")) (, ",") (identifier "uStack_416c") () ")"))) (; ";")) (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c)" (identifier "uStack_416c") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9560)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9560)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9560)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9560)" (( "(") (binary_expression "puVar38 + 0x2b9560" (identifier "puVar38") (+ "+") (number_literal "0x2b9560")) () ")"))))) () ")")) (argument_list "(uStack_416c)" (( "(") (identifier "uStack_416c") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b91ec))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b91ec)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b91ec)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b91ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b91ec)" (( "(") (binary_expression "puVar38 + 0x2b91ec" (identifier "puVar38") (+ "+") (number_literal "0x2b91ec")) () ")"))))) () ")")) (argument_list "(piVar22,aiStack_4168,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "aiStack_4168") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);\n        if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }\n        (**(code **)(puVar38 + 0x2b94ac))(iVar4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);\n        (**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);\n        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);\n      }" ({ "{") (expression_statement "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);" (assignment_expression "uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (identifier "uStack_416c") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d00))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d00)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d00)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d00)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d00)" (( "(") (binary_expression "puVar38 + 0x2b9d00" (identifier "puVar38") (+ "+") (number_literal "0x2b9d00")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar38 + 0x2b8dd0) + -0x3688)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x3688" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x3688")) () ")")))) (; ";")) (if_statement "if (0 < aiStack_4168[0]) {\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }" (if "if") (parenthesized_expression "(0 < aiStack_4168[0])" (( "(") (binary_expression "0 < aiStack_4168[0]" (number_literal "0") (< "<") (subscript_expression "aiStack_4168[0]" (identifier "aiStack_4168") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n          iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n          iVar6 = 0;\n          do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);\n        }" ({ "{") (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          } while (iVar6 < aiStack_4168[0]);" (do "do") (compound_statement "{\n            iVar6 = iVar6 + 1;\n            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);\n            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);\n          }" ({ "{") (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);" (call_expression "(**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9268))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9268)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9268)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9268)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9268)" (( "(") (binary_expression "puVar38 + 0x2b9268" (identifier "puVar38") (+ "+") (number_literal "0x2b9268")) () ")"))))) () ")")) (argument_list "(auStack_110c,0x1000,iVar5 + -0x6264)" (( "(") (identifier "auStack_110c") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar5 + -0x6264" (identifier "iVar5") (+ "+") (number_literal "-0x6264")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);" (call_expression "(**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9894))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9894)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9894)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9894)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9894)" (( "(") (binary_expression "puVar38 + 0x2b9894" (identifier "puVar38") (+ "+") (number_literal "0x2b9894")) () ")"))))) () ")")) (argument_list "(&uStack_416c,auStack_110c)" (( "(") (pointer_expression "&uStack_416c" (& "&") (identifier "uStack_416c")) (, ",") (identifier "auStack_110c") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 < aiStack_4168[0])" (( "(") (binary_expression "iVar6 < aiStack_4168[0]" (identifier "iVar6") (< "<") (subscript_expression "aiStack_4168[0]" (identifier "aiStack_4168") ([ "[") (number_literal "0") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x624c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x624c")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8e38) + -0x18b8" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")")))) (+ "+") (number_literal "-0x18b8")) (, ",") (identifier "uStack_416c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(uStack_416c);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(uStack_416c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9560)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9560)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9560)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9560)" (( "(") (binary_expression "puVar38 + 0x2b9560" (identifier "puVar38") (+ "+") (number_literal "0x2b9560")) () ")"))))) () ")")) (argument_list "(uStack_416c)" (( "(") (identifier "uStack_416c") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9378))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b9378))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9378))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9378)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9378)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9378)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9378)" (( "(") (binary_expression "puVar38 + 0x2b9378" (identifier "puVar38") (+ "+") (number_literal "0x2b9378")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b93f8))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93f8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b93f8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b93f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93f8)" (( "(") (binary_expression "puVar38 + 0x2b93f8" (identifier "puVar38") (+ "+") (number_literal "0x2b93f8")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8dd4);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);\n        iVar7 = *(int *)(puVar38 + 0x2b8dd4);\n        iVar8 = *(int *)(puVar38 + 0x2b8dd0);\n        do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6230" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6230")) () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar7 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar8 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (do_statement "do {\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        } while (iVar4 != 0);" (do "do") (compound_statement "{\n          do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);\n          (**(code **)(puVar38 + 0x2b9234))(iVar9);\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);\n          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);\n          if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }\n          pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }\n          iVar4 = (*pcVar40)(piVar22);\n        }" ({ "{") (do_statement "do {\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          } while (iVar9 == 0);" (do "do") (compound_statement "{\n            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);\n          }" ({ "{") (expression_statement "iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);" (assignment_expression "iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98c4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b98c4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b98c4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b98c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b98c4)" (( "(") (binary_expression "puVar38 + 0x2b98c4" (identifier "puVar38") (+ "+") (number_literal "0x2b98c4")) () ")"))))) () ")")) (argument_list "(piVar22,iVar4)" (( "(") (identifier "piVar22") (, ",") (identifier "iVar4") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9234))(iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9234))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9234))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9234)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9234)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9234)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9234)" (( "(") (binary_expression "puVar38 + 0x2b9234" (identifier "puVar38") (+ "+") (number_literal "0x2b9234")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar5 + -0x6220,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar5 + -0x6220" (identifier "iVar5") (+ "+") (number_literal "-0x6220")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918)" (identifier "iVar28") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b95fc))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b95fc)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b95fc)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b95fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b95fc)" (( "(") (binary_expression "puVar38 + 0x2b95fc" (identifier "puVar38") (+ "+") (number_literal "0x2b95fc")) () ")"))))) () ")")) (argument_list "(iVar4,iVar6 + -0x1918)" (( "(") (identifier "iVar4") (, ",") (binary_expression "iVar6 + -0x1918" (identifier "iVar6") (+ "+") (number_literal "-0x1918")) () ")")))) (; ";")) (if_statement "if (iVar28 == 0) {\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);\n            if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }\n          }" ({ "{") (expression_statement "iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);" (assignment_expression "iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9)" (identifier "iVar28") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9234))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9234))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9234)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9234)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9234)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9234)" (( "(") (binary_expression "puVar38 + 0x2b9234" (identifier "puVar38") (+ "+") (number_literal "0x2b9234")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (0 < iVar28 + -5) {\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }" (if "if") (parenthesized_expression "(0 < iVar28 + -5)" (( "(") (binary_expression "0 < iVar28 + -5" (number_literal "0") (< "<") (binary_expression "iVar28 + -5" (identifier "iVar28") (+ "+") (number_literal "-5"))) () ")")) (compound_statement "{\n              iVar27 = *(int *)(puVar38 + 0x2b8dd0);\n              iVar29 = 0;\n              do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);\n            }" ({ "{") (expression_statement "iVar27 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar27 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" (identifier "iVar29") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              } while (iVar29 < iVar28 + -5);" (do "do") (compound_statement "{\n                iVar35 = iVar29 + 1;\n                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }\n                iVar29 = iVar35 + uVar36;\n              }" ({ "{") (expression_statement "iVar35 = iVar29 + 1;" (assignment_expression "iVar35 = iVar29 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" (identifier "iVar17") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9354)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9354)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9354)" (( "(") (binary_expression "puVar38 + 0x2b9354" (identifier "puVar38") (+ "+") (number_literal "0x2b9354")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (*(char *)(iVar17 + iVar29) == '\x1c') {\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }\n                else {\n                  uVar36 = 1;\n                }" (if "if") (parenthesized_expression "(*(char *)(iVar17 + iVar29) == '\x1c')" (( "(") (binary_expression "*(char *)(iVar17 + iVar29) == '\x1c'" (pointer_expression "*(char *)(iVar17 + iVar29)" (* "*") (cast_expression "(char *)(iVar17 + iVar29)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar29)" (( "(") (binary_expression "iVar17 + iVar29" (identifier "iVar17") (+ "+") (identifier "iVar29")) () ")")))) (== "==") (char_literal "'\x1c'" (' "'") (escape_sequence "\x1c") (' "'"))) () ")")) (compound_statement "{\n                  (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);\n                  if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }\n                  iVar35 = iVar29 + 5;\n                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);\n                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));\n                  if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }\n                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);\n                  if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }\n                }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9354))(iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9354)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9354)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9354)" (( "(") (binary_expression "puVar38 + 0x2b9354" (identifier "puVar38") (+ "+") (number_literal "0x2b9354")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" (identifier "iVar17") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9354)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9354)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9354)" (( "(") (binary_expression "puVar38 + 0x2b9354" (identifier "puVar38") (+ "+") (number_literal "0x2b9354")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);" (assignment_expression "uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5)" (identifier "uVar36") (= "=") (call_expression "(uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(*(char *)(iVar17 + iVar29 + 2) - 5)" (( "(") (binary_expression "*(char *)(iVar17 + iVar29 + 2) - 5" (pointer_expression "*(char *)(iVar17 + iVar29 + 2)" (* "*") (cast_expression "(char *)(iVar17 + iVar29 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar29 + 2)" (( "(") (binary_expression "iVar17 + iVar29 + 2" (binary_expression "iVar17 + iVar29" (identifier "iVar17") (+ "+") (identifier "iVar29")) (+ "+") (number_literal "2")) () ")")))) (- "-") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (uVar36 < 0xd7) {\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }" (if "if") (parenthesized_expression "(uVar36 < 0xd7)" (( "(") (binary_expression "uVar36 < 0xd7" (identifier "uVar36") (< "<") (number_literal "0xd7")) () ")")) (compound_statement "{\n                    \n                    \n                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();\n                    return uVar36;\n                  }" ({ "{") (expression_statement "uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )();" (assignment_expression "uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )()" (identifier "uVar36") (= "=") (call_expression "(*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )()" (parenthesized_expression "(*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)\n                             )" (( "(") (pointer_expression "*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" (* "*") (cast_expression "(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)" (( "(") (binary_expression "puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c" (binary_expression "puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4)" (identifier "puVar38") (+ "+") (pointer_expression "*(int *)(iVar8 + -0x5f18 + uVar36 * 4)" (* "*") (cast_expression "(int *)(iVar8 + -0x5f18 + uVar36 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x5f18 + uVar36 * 4)" (( "(") (binary_expression "iVar8 + -0x5f18 + uVar36 * 4" (binary_expression "iVar8 + -0x5f18" (identifier "iVar8") (+ "+") (number_literal "-0x5f18")) (+ "+") (binary_expression "uVar36 * 4" (identifier "uVar36") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2c0d9c")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}"))) (expression_statement "iVar35 = iVar29 + 5;" (assignment_expression "iVar35 = iVar29 + 5" (identifier "iVar35") (= "=") (binary_expression "iVar29 + 5" (identifier "iVar29") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar27 + -0x6200" (identifier "iVar27") (+ "+") (number_literal "-0x6200")) (, ",") (binary_expression "iVar7 + -0x1c68" (identifier "iVar7") (+ "+") (number_literal "-0x1c68")) () ")"))) (; ";")) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" (identifier "iVar17") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9354)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9354)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9354)" (( "(") (binary_expression "puVar38 + 0x2b9354" (identifier "puVar38") (+ "+") (number_literal "0x2b9354")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);" (assignment_expression "uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(iVar17 + iVar29 + 3)" (* "*") (cast_expression "(undefined1 *)(iVar17 + iVar29 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar29 + 3)" (( "(") (binary_expression "iVar17 + iVar29 + 3" (binary_expression "iVar17 + iVar29" (identifier "iVar17") (+ "+") (identifier "iVar29")) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" (identifier "iVar17") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9354)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9354)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9354)" (( "(") (binary_expression "puVar38 + 0x2b9354" (identifier "puVar38") (+ "+") (number_literal "0x2b9354")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));" (assignment_expression "uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" (identifier "uVar36") (= "=") (cast_expression "(uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" (identifier "CONCAT11") (argument_list "(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4))" (( "(") (identifier "uVar1") (, ",") (pointer_expression "*(undefined1 *)(iVar17 + iVar29 + 4)" (* "*") (cast_expression "(undefined1 *)(iVar17 + iVar29 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar29 + 4)" (( "(") (binary_expression "iVar17 + iVar29 + 4" (binary_expression "iVar17 + iVar29" (identifier "iVar17") (+ "+") (identifier "iVar29")) (+ "+") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (if_statement "if ((uint)(iVar28 - iVar35) <= uVar36) {\n                    uVar36 = iVar28 - iVar35;\n                  }" (if "if") (parenthesized_expression "((uint)(iVar28 - iVar35) <= uVar36)" (( "(") (binary_expression "(uint)(iVar28 - iVar35) <= uVar36" (call_expression "(uint)(iVar28 - iVar35)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar28 - iVar35)" (( "(") (binary_expression "iVar28 - iVar35" (identifier "iVar28") (- "-") (identifier "iVar35")) () ")"))) (<= "<=") (identifier "uVar36")) () ")")) (compound_statement "{\n                    uVar36 = iVar28 - iVar35;\n                  }" ({ "{") (expression_statement "uVar36 = iVar28 - iVar35;" (assignment_expression "uVar36 = iVar28 - iVar35" (identifier "uVar36") (= "=") (binary_expression "iVar28 - iVar35" (identifier "iVar28") (- "-") (identifier "iVar35"))) (; ";")) (} "}"))) (expression_statement "iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);" (assignment_expression "iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1)" (identifier "iVar29") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99f8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99f8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99f8)" (( "(") (binary_expression "puVar38 + 0x2b99f8" (identifier "puVar38") (+ "+") (number_literal "0x2b99f8")) () ")"))))) () ")")) (argument_list "(uVar36 + 0x1000,1)" (( "(") (binary_expression "uVar36 + 0x1000" (identifier "uVar36") (+ "+") (number_literal "0x1000")) (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar29 != 0) {\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }" (if "if") (parenthesized_expression "(iVar29 != 0)" (( "(") (binary_expression "iVar29 != 0" (identifier "iVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);\n                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);\n                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);\n                    if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }\n                    (**(code **)(puVar38 + 0x2b9560))(iVar29);\n                  }" ({ "{") (expression_statement "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);" (assignment_expression "iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9)" (identifier "iVar17") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9354))(iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9354))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9354)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9354)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9354)" (( "(") (binary_expression "puVar38 + 0x2b9354" (identifier "puVar38") (+ "+") (number_literal "0x2b9354")) () ")"))))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);" (call_expression "(**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d28))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d28)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d28)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d28)" (( "(") (binary_expression "puVar38 + 0x2b9d28" (identifier "puVar38") (+ "+") (number_literal "0x2b9d28")) () ")"))))) () ")")) (argument_list "(iVar29,iVar17 + iVar35,uVar36 + 1)" (( "(") (identifier "iVar29") (, ",") (binary_expression "iVar17 + iVar35" (identifier "iVar17") (+ "+") (identifier "iVar35")) (, ",") (binary_expression "uVar36 + 1" (identifier "uVar36") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);" (assignment_expression "piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29)" (identifier "piVar24") (= "=") (cast_expression "(int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar38 + 0x2b92cc))(iVar29)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b92cc))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b92cc)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b92cc)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b92cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b92cc)" (( "(") (binary_expression "puVar38 + 0x2b92cc" (identifier "puVar38") (+ "+") (number_literal "0x2b92cc")) () ")"))))) () ")")) (argument_list "(iVar29)" (( "(") (identifier "iVar29") () ")"))))) (; ";")) (if_statement "if (piVar24 != (int *)0x0) {\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }" (if "if") (parenthesized_expression "(piVar24 != (int *)0x0)" (( "(") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      iVar17 = *piVar24;\n                      piVar16 = piVar24;\n                      while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }\n                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);\n                    }" ({ "{") (expression_statement "iVar17 = *piVar24;" (assignment_expression "iVar17 = *piVar24" (identifier "iVar17") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";")) (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" (identifier "piVar16") (= "=") (identifier "piVar24")) (; ";")) (while_statement "while (iVar17 != 0) {\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }" (while "while") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);\n                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);\n                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);\n                        iVar17 = piVar16[1];\n                        *piVar16 = iVar19;\n                        piVar16 = piVar16 + 1;\n                      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9eac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9eac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9eac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9eac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9eac)" (( "(") (binary_expression "puVar38 + 0x2b9eac" (identifier "puVar38") (+ "+") (number_literal "0x2b9eac")) () ")"))))) () ")")) (argument_list "(iVar17,puVar32)" (( "(") (identifier "iVar17") (, ",") (identifier "puVar32") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32);" (call_expression "(**(code **)(puVar38 + 0x2b94e8))(10,puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94e8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94e8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94e8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94e8)" (( "(") (binary_expression "puVar38 + 0x2b94e8" (identifier "puVar38") (+ "+") (number_literal "0x2b94e8")) () ")"))))) () ")")) (argument_list "(10,puVar32)" (( "(") (number_literal "10") (, ",") (identifier "puVar32") () ")"))) (; ";")) (expression_statement "iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);" (assignment_expression "iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16)" (identifier "iVar19") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b94ac))(*piVar16)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) () ")")) (argument_list "(*piVar16)" (( "(") (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) () ")")))) (; ";")) (expression_statement "iVar17 = piVar16[1];" (assignment_expression "iVar17 = piVar16[1]" (identifier "iVar17") (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*piVar16 = iVar19;" (assignment_expression "*piVar16 = iVar19" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "piVar16 = piVar16 + 1;" (assignment_expression "piVar16 = piVar16 + 1" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 1" (identifier "piVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b94ac))(piVar24);" (call_expression "(**(code **)(puVar38 + 0x2b94ac))(piVar24)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b94ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b94ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) () ")")) (argument_list "(piVar24)" (( "(") (identifier "piVar24") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(iVar29);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(iVar29)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9560)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9560)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9560)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9560)" (( "(") (binary_expression "puVar38 + 0x2b9560" (identifier "puVar38") (+ "+") (number_literal "0x2b9560")) () ")"))))) () ")")) (argument_list "(iVar29)" (( "(") (identifier "iVar29") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  uVar36 = 1;\n                }" (else "else") (compound_statement "{\n                  uVar36 = 1;\n                }" ({ "{") (expression_statement "uVar36 = 1;" (assignment_expression "uVar36 = 1" (identifier "uVar36") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "iVar29 = iVar35 + uVar36;" (assignment_expression "iVar29 = iVar35 + uVar36" (identifier "iVar29") (= "=") (binary_expression "iVar35 + uVar36" (identifier "iVar35") (+ "+") (identifier "uVar36"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar29 < iVar28 + -5)" (( "(") (binary_expression "iVar29 < iVar28 + -5" (identifier "iVar29") (< "<") (binary_expression "iVar28 + -5" (identifier "iVar28") (+ "+") (number_literal "-5"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b93f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b93f8)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b93f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93f8)" (( "(") (binary_expression "puVar38 + 0x2b93f8" (identifier "puVar38") (+ "+") (number_literal "0x2b93f8")) () ")"))))) (; ";")) (if_statement "if (piVar22[0xcd4] != 0) {\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }" (if "if") (parenthesized_expression "(piVar22[0xcd4] != 0)" (( "(") (binary_expression "piVar22[0xcd4] != 0" (subscript_expression "piVar22[0xcd4]" (identifier "piVar22") ([ "[") (number_literal "0xcd4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);\n            pcVar40 = *(code **)(puVar38 + 0x2b93f8);\n          }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);" (call_expression "(**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9244))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9244)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9244)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9244)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9244)" (( "(") (binary_expression "puVar38 + 0x2b9244" (identifier "puVar38") (+ "+") (number_literal "0x2b9244")) () ")"))))) () ")")) (argument_list "(puVar32,iVar4,iVar9)" (( "(") (identifier "puVar32") (, ",") (identifier "iVar4") (, ",") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b93f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b93f8)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b93f8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b93f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93f8)" (( "(") (binary_expression "puVar38 + 0x2b93f8" (identifier "puVar38") (+ "+") (number_literal "0x2b93f8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar4 = (*pcVar40)(piVar22);" (assignment_expression "iVar4 = (*pcVar40)(piVar22)" (identifier "iVar4") (= "=") (call_expression "(*pcVar40)(piVar22)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9180))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b9180))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9180))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9180)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9180)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9180)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9180)" (( "(") (binary_expression "puVar38 + 0x2b9180" (identifier "puVar38") (+ "+") (number_literal "0x2b9180")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9dac))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9dac)" (( "(") (binary_expression "puVar38 + 0x2b9dac" (identifier "puVar38") (+ "+") (number_literal "0x2b9dac")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61e8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x61e8")) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")"))))) (; ";")) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        } while (iVar4 != 0);" (do "do") (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar5 + -0x61d8" (identifier "iVar5") (+ "+") (number_literal "-0x61d8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98e8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b98e8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b98e8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b98e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b98e8)" (( "(") (binary_expression "puVar38 + 0x2b98e8" (identifier "puVar38") (+ "+") (number_literal "0x2b98e8")) () ")"))))) () ")")) (argument_list "(piVar22,iVar4,uVar26)" (( "(") (identifier "piVar22") (, ",") (identifier "iVar4") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar6 + -0x18b8" (identifier "iVar6") (+ "+") (number_literal "-0x18b8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9dac))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9dac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9dac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9dac)" (( "(") (binary_expression "puVar38 + 0x2b9dac" (identifier "puVar38") (+ "+") (number_literal "0x2b9dac")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b99e8))(piVar22);" (call_expression "(**(code **)(puVar38 + 0x2b99e8))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99e8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99e8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99e8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99e8)" (( "(") (binary_expression "puVar38 + 0x2b99e8" (identifier "puVar38") (+ "+") (number_literal "0x2b99e8")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9b20))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b20))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b20)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b20)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b20)" (( "(") (binary_expression "puVar38 + 0x2b9b20" (identifier "puVar38") (+ "+") (number_literal "0x2b9b20")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61cc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x61cc")) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")"))))) (; ";")) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        } while (iVar4 != 0);" (do "do") (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar5 + -0x61d8" (identifier "iVar5") (+ "+") (number_literal "-0x61d8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99ac)" (( "(") (binary_expression "puVar38 + 0x2b99ac" (identifier "puVar38") (+ "+") (number_literal "0x2b99ac")) () ")"))))) () ")")) (argument_list "(piVar22,iVar4)" (( "(") (identifier "piVar22") (, ",") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar6 + -0x18b8" (identifier "iVar6") (+ "+") (number_literal "-0x18b8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9b20))(piVar22)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b20))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b20)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b20)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b20)" (( "(") (binary_expression "puVar38 + 0x2b9b20" (identifier "puVar38") (+ "+") (number_literal "0x2b9b20")) () ")"))))) () ")")) (argument_list "(piVar22)" (( "(") (identifier "piVar22") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9d50))();" (call_expression "(**(code **)(puVar38 + 0x2b9d50))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9d50))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9d50)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9d50)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9d50)" (( "(") (binary_expression "puVar38 + 0x2b9d50" (identifier "puVar38") (+ "+") (number_literal "0x2b9d50")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b970c))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b970c))()" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b970c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b970c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b970c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b970c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b970c)" (( "(") (binary_expression "puVar38 + 0x2b970c" (identifier "puVar38") (+ "+") (number_literal "0x2b970c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);\n        iVar5 = *(int *)(puVar38 + 0x2b8dd0);\n        iVar6 = *(int *)(puVar38 + 0x2b8e38);\n        do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);\n      }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61bc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x61bc")) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8e38);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8e38)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")"))))) (; ";")) (do_statement "do {\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        } while (iVar4 != 0);" (do "do") (compound_statement "{\n          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);\n          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);\n          if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }\n          iVar4 = (**(code **)(puVar38 + 0x2b970c))();\n        }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar5 + -0x61d8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar5 + -0x61d8" (identifier "iVar5") (+ "+") (number_literal "-0x61d8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ba4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ba4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ba4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ba4)" (( "(") (binary_expression "puVar38 + 0x2b9ba4" (identifier "puVar38") (+ "+") (number_literal "0x2b9ba4")) () ")"))))) () ")")) (argument_list "(3,iVar4,uVar26)" (( "(") (number_literal "3") (, ",") (identifier "iVar4") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);\n          }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,iVar6 + -0x18b8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "iVar6 + -0x18b8" (identifier "iVar6") (+ "+") (number_literal "-0x18b8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b970c))();" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b970c))()" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b970c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b970c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b970c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b970c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b970c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b970c)" (( "(") (binary_expression "puVar38 + 0x2b970c" (identifier "puVar38") (+ "+") (number_literal "0x2b970c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar33 = auStack_310d + 1;" (assignment_expression "puVar33 = auStack_310d + 1" (identifier "puVar33") (= "=") (binary_expression "auStack_310d + 1" (identifier "auStack_310d") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd8);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd8)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd8)" (( "(") (binary_expression "puVar38 + 0x2b8dd8" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd8")) () ")"))))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5])" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b924c))(2,piVar22[5])" (parenthesized_expression "(**(code **)(puVar38 + 0x2b924c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b924c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b924c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b924c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b924c)" (( "(") (binary_expression "puVar38 + 0x2b924c" (identifier "puVar38") (+ "+") (number_literal "0x2b924c")) () ")"))))) () ")")) (argument_list "(2,piVar22[5])" (( "(") (number_literal "2") (, ",") (subscript_expression "piVar22[5]" (identifier "piVar22") ([ "[") (number_literal "5") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x61ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x61ac")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9588)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9588)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9588)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9588)" (( "(") (binary_expression "puVar38 + 0x2b9588" (identifier "puVar38") (+ "+") (number_literal "0x2b9588")) () ")"))))) () ")")) (argument_list "(piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)" (( "(") (subscript_expression "piVar22[0xaa]" (identifier "piVar22") ([ "[") (number_literal "0xaa") (] "]")) (, ",") (subscript_expression "piVar22[0xab]" (identifier "piVar22") ([ "[") (number_literal "0xab") (] "]")) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8e38) + 0x1b28" (pointer_expression "*(int *)(puVar38 + 0x2b8e38)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e38)" (( "(") (binary_expression "puVar38 + 0x2b8e38" (identifier "puVar38") (+ "+") (number_literal "0x2b8e38")) () ")")))) (+ "+") (number_literal "0x1b28")) (, ",") (number_literal "0x1000") (, ",") (identifier "puVar33") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x619c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x619c")) (, ",") (identifier "puVar33") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9588)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9588)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9588)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9588)" (( "(") (binary_expression "puVar38 + 0x2b9588" (identifier "puVar38") (+ "+") (number_literal "0x2b9588")) () ")"))))) () ")")) (argument_list "((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),\n                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,\n                 0x1000,puVar33)" (( "(") (cast_expression "(int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20)" (( "(") (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20" (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]" (cast_expression "(ulonglong)(uint)piVar22[6]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(uint)piVar22[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")))) (* "*") (cast_expression "(ulonglong)(uint)piVar22[7]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(uint)piVar22[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]"))))) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7])" (( "(") (binary_expression "(ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]" (cast_expression "(ulonglong)(uint)piVar22[6]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(uint)piVar22[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")))) (* "*") (cast_expression "(ulonglong)(uint)piVar22[7]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(uint)piVar22[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]"))))) () ")"))) (, ",") (number_literal "0") (, ",") (binary_expression "iVar4 + 0x4ff8" (identifier "iVar4") (+ "+") (number_literal "0x4ff8")) (, ",") (number_literal "0x1000") (, ",") (identifier "puVar33") () ")"))) (; ";")) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33)" (identifier "uVar36") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9824))(puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9824))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9824)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9824)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9824)" (( "(") (binary_expression "puVar38 + 0x2b9824" (identifier "puVar38") (+ "+") (number_literal "0x2b9824")) () ")"))))) () ")")) (argument_list "(puVar33)" (( "(") (identifier "puVar33") () ")")))) (; ";")) (if_statement "if (1 < uVar36) {\n        auStack_310d[uVar36] = 0;\n      }" (if "if") (parenthesized_expression "(1 < uVar36)" (( "(") (binary_expression "1 < uVar36" (number_literal "1") (< "<") (identifier "uVar36")) () ")")) (compound_statement "{\n        auStack_310d[uVar36] = 0;\n      }" ({ "{") (expression_statement "auStack_310d[uVar36] = 0;" (assignment_expression "auStack_310d[uVar36] = 0" (subscript_expression "auStack_310d[uVar36]" (identifier "auStack_310d") ([ "[") (identifier "uVar36") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x618c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x618c")) (, ",") (identifier "puVar33") () ")"))) (; ";")) (if_statement "if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46)" (( "(") (binary_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46" (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x13f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x13f8")) () ")")))) (< "<") (identifier "dVar46")) () ")")) (compound_statement "{\n        dVar41 = (double)piVar22[6];\n        if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        dVar47 = (double)piVar22[7];\n        if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }\n        uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));\n        (**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);\n        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);\n      }" ({ "{") (expression_statement "dVar41 = (double)piVar22[6];" (assignment_expression "dVar41 = (double)piVar22[6]" (identifier "dVar41") (= "=") (cast_expression "(double)piVar22[6]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (piVar22[6] < 0) {\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(piVar22[6] < 0)" (( "(") (binary_expression "piVar22[6] < 0" (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (double)piVar22[7];" (assignment_expression "dVar47 = (double)piVar22[7]" (identifier "dVar47") (= "=") (cast_expression "(double)piVar22[7]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (piVar22[7] < 0) {\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" (if "if") (parenthesized_expression "(piVar22[7] < 0)" (( "(") (binary_expression "piVar22[7] < 0" (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);\n        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1418" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));" (assignment_expression "uVar45 = (**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" (identifier "uVar45") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b8e40))\n                           ((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b8e40))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b8e40)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b8e40)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b8e40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b8e40)" (( "(") (binary_expression "puVar38 + 0x2b8e40" (identifier "puVar38") (+ "+") (number_literal "0x2b8e40")) () ")"))))) () ")")) (argument_list "((dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400))" (( "(") (binary_expression "(dVar41 * dVar47) / dVar46 +\n                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (binary_expression "(dVar41 * dVar47) / dVar46" (parenthesized_expression "(dVar41 * dVar47)" (( "(") (binary_expression "dVar41 * dVar47" (identifier "dVar41") (* "*") (identifier "dVar47")) () ")")) (/ "/") (identifier "dVar46")) (+ "+") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1400)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1400" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1400")) () ")"))))) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9588))\n                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9588))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9588)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9588)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9588)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9588)" (( "(") (binary_expression "puVar38 + 0x2b9588" (identifier "puVar38") (+ "+") (number_literal "0x2b9588")) () ")"))))) () ")")) (argument_list "((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33)" (( "(") (cast_expression "(int)((ulonglong)uVar45 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar45 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar45 >> 0x20" (cast_expression "(ulonglong)uVar45" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar45")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)uVar45" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar45")) (, ",") (number_literal "0") (, ",") (binary_expression "iVar4 + 0x4ff8" (identifier "iVar4") (+ "+") (number_literal "0x4ff8")) (, ",") (number_literal "0x1000") (, ",") (identifier "puVar33") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6174" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6174")) (, ",") (identifier "puVar33") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(puVar38 + 0x2b8dd4);" (assignment_expression "iVar5 = *(int *)(puVar38 + 0x2b8dd4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),\n                 (int)uVar42)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6158")) (, ",") (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar42")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)uVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar42")) () ")"))) (; ";")) (expression_statement "uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));" (assignment_expression "uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (identifier "uVar42") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9ea4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9ea4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9ea4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9ea4)" (( "(") (binary_expression "puVar38 + 0x2b9ea4" (identifier "puVar38") (+ "+") (number_literal "0x2b9ea4")) () ")"))))) () ")")) (argument_list "(dVar46,*(undefined8 *)(iVar5 + 0x7ba0))" (( "(") (identifier "dVar46") (, ",") (pointer_expression "*(undefined8 *)(iVar5 + 0x7ba0)" (* "*") (cast_expression "(undefined8 *)(iVar5 + 0x7ba0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7ba0)" (( "(") (binary_expression "iVar5 + 0x7ba0" (identifier "iVar5") (+ "+") (number_literal "0x7ba0")) () ")")))) () ")")))) (; ";")) (expression_statement "dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);" (assignment_expression "dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42)" (identifier "dVar41") (= "=") (cast_expression "(double)(**(code **)(puVar38 + 0x2b910c))(uVar42)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar38 + 0x2b910c))(uVar42)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b910c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b910c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b910c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b910c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b910c)" (( "(") (binary_expression "puVar38 + 0x2b910c" (identifier "puVar38") (+ "+") (number_literal "0x2b910c")) () ")"))))) () ")")) (argument_list "(uVar42)" (( "(") (identifier "uVar42") () ")"))))) (; ";")) (expression_statement "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);" (assignment_expression "dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (identifier "dVar47") (= "=") (cast_expression "(double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar38 + 0x2b9b5c))(dVar46)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b5c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b5c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b5c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b5c)" (( "(") (binary_expression "puVar38 + 0x2b9b5c" (identifier "puVar38") (+ "+") (number_literal "0x2b9b5c")) () ")"))))) () ")")) (argument_list "(dVar46)" (( "(") (identifier "dVar46") () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dcc);" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dcc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")"))))) (; ";")) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar36 = (uint)dVar41;\n      }\n      else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" (identifier "dVar41") (< "<") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar36 = (uint)dVar41;\n      }" ({ "{") (expression_statement "uVar36 = (uint)dVar41;" (assignment_expression "uVar36 = (uint)dVar41" (identifier "uVar36") (= "=") (cast_expression "(uint)dVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar41"))) (; ";")) (} "}")) (else_clause "else {\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (identifier "uVar36") (= "=") (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" (identifier "dVar41") (- "-") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);" (assignment_expression "dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0)" (identifier "dVar41") (= "=") (binary_expression "dVar46 / *(double *)(iVar5 + 0x7ba0)" (identifier "dVar46") (/ "/") (pointer_expression "*(double *)(iVar5 + 0x7ba0)" (* "*") (cast_expression "(double *)(iVar5 + 0x7ba0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7ba0)" (( "(") (binary_expression "iVar5 + 0x7ba0" (identifier "iVar5") (+ "+") (number_literal "0x7ba0")) () ")")))))) (; ";")) (if_statement "if (dVar41 < *(double *)(iVar4 + 0x1410)) {\n        uVar14 = (uint)dVar41;\n      }\n      else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar41 < *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar41 < *(double *)(iVar4 + 0x1410)" (identifier "dVar41") (< "<") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar14 = (uint)dVar41;\n      }" ({ "{") (expression_statement "uVar14 = (uint)dVar41;" (assignment_expression "uVar14 = (uint)dVar41" (identifier "uVar14") (= "=") (cast_expression "(uint)dVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar41"))) (; ";")) (} "}")) (else_clause "else {\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (identifier "uVar14") (= "=") (binary_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar41 - *(double *)(iVar4 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar41 - *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar41 - *(double *)(iVar4 + 0x1410)" (identifier "dVar41") (- "-") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);" (assignment_expression "dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (identifier "dVar46") (= "=") (binary_expression "(dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (parenthesized_expression "(dVar46 - dVar47)" (( "(") (binary_expression "dVar46 - dVar47" (identifier "dVar46") (- "-") (identifier "dVar47")) () ")")) (* "*") (pointer_expression "*(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (* "*") (cast_expression "(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd4) + -0x1680)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x1680" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")")))) (+ "+") (number_literal "-0x1680")) () ")")))))) (; ";")) (if_statement "if (dVar46 < *(double *)(iVar4 + 0x1410)) {\n        uVar15 = (uint)dVar46;\n      }\n      else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar46 < *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar46 < *(double *)(iVar4 + 0x1410)" (identifier "dVar46") (< "<") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar15 = (uint)dVar46;\n      }" ({ "{") (expression_statement "uVar15 = (uint)dVar46;" (assignment_expression "uVar15 = (uint)dVar46" (identifier "uVar15") (= "=") (cast_expression "(uint)dVar46" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar46"))) (; ";")) (} "}")) (else_clause "else {\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;" (assignment_expression "uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (identifier "uVar15") (= "=") (binary_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar46 - *(double *)(iVar4 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar46 - *(double *)(iVar4 + 0x1410))" (( "(") (binary_expression "dVar46 - *(double *)(iVar4 + 0x1410)" (identifier "dVar46") (- "-") (pointer_expression "*(double *)(iVar4 + 0x1410)" (* "*") (cast_expression "(double *)(iVar4 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1410)" (( "(") (binary_expression "iVar4 + 0x1410" (identifier "iVar4") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))\n                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6140" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6140")) (, ",") (identifier "uVar14") (, ",") (identifier "uVar36") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b942c))(0)" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b942c))(0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b942c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b942c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b942c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b942c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b942c)" (( "(") (binary_expression "puVar38 + 0x2b942c" (identifier "puVar38") (+ "+") (number_literal "0x2b942c")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x611c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x611c")) (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9978);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9978)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9978)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9978)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9978)" (( "(") (binary_expression "puVar38 + 0x2b9978" (identifier "puVar38") (+ "+") (number_literal "0x2b9978")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" (else "else") (compound_statement "{\n    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);\n    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);\n    if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }\n    if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }\n    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);\n    if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }\n    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);\n    puVar13 = (undefined8 *)(puVar12 + 0x10);\n    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);\n    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);\n    do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);\nLAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }\n    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);\n    if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }\n    if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }\n    if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }\n    pcVar40 = *(code **)(puVar38 + 0x2b94ac);\n  }" ({ "{") (expression_statement "iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);" (assignment_expression "iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b80))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b80)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b80)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b80)" (( "(") (binary_expression "puVar38 + 0x2b9b80" (identifier "puVar38") (+ "+") (number_literal "0x2b9b80")) () ")"))))) () ")")) (argument_list "(0x44,0,iVar4)" (( "(") (number_literal "0x44") (, ",") (number_literal "0") (, ",") (identifier "iVar4") () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);" (assignment_expression "iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b99ac))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b99ac)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b99ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99ac)" (( "(") (binary_expression "puVar38 + 0x2b99ac" (identifier "puVar38") (+ "+") (number_literal "0x2b99ac")) () ")"))))) () ")")) (argument_list "(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8)" (( "(") (identifier "piVar22") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6ad8")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n      pdStack_4198 = (double *)0x0;\n    }\n    else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pdStack_4198 = (double *)0x0;\n    }" ({ "{") (expression_statement "pdStack_4198 = (double *)0x0;" (assignment_expression "pdStack_4198 = (double *)0x0" (identifier "pdStack_4198") (= "=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" (else "else") (compound_statement "{\n      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);\n    }" ({ "{") (expression_statement "pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);" (assignment_expression "pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" (identifier "pdStack_4198") (= "=") (cast_expression "(double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b982c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b982c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b982c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b982c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b982c)" (( "(") (binary_expression "puVar38 + 0x2b982c" (identifier "puVar38") (+ "+") (number_literal "0x2b982c")) () ")"))))) () ")")) (argument_list "(iVar6,0,10)" (( "(") (identifier "iVar6") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")"))))) (; ";")) (} "}")))) (if_statement "if (piVar22[0xcdb] != -0x54535255) {\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }" (if "if") (parenthesized_expression "(piVar22[0xcdb] != -0x54535255)" (( "(") (binary_expression "piVar22[0xcdb] != -0x54535255" (subscript_expression "piVar22[0xcdb]" (identifier "piVar22") ([ "[") (number_literal "0xcdb") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n      uVar21 = 0x90;\n      pcVar40 = *(code **)(puVar38 + 0x2b9af4);\n      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;\nLAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);\n      return uVar36;\n    }" ({ "{") (expression_statement "uVar21 = 0x90;" (assignment_expression "uVar21 = 0x90" (identifier "uVar21") (= "=") (number_literal "0x90")) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9af4);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9af4)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9af4)" (( "(") (binary_expression "puVar38 + 0x2b9af4" (identifier "puVar38") (+ "+") (number_literal "0x2b9af4")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;" (assignment_expression "iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4" (identifier "iVar4") (= "=") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5ba4" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5ba4"))) (; ";")) (labeled_statement "LAB_000f38e8:\n      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);" (statement_identifier "LAB_000f38e8") (: ":") (expression_statement "uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);" (assignment_expression "uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" (identifier "uVar36") (= "=") (call_expression "(*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,\n                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd4) + -0x3784" (pointer_expression "*(int *)(puVar38 + 0x2b8dd4)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd4)" (( "(") (binary_expression "puVar38 + 0x2b8dd4" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd4")) () ")")))) (+ "+") (number_literal "-0x3784")) (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6b00")) (, ",") (identifier "uVar21") (, ",") (identifier "iVar4") () ")")))) (; ";"))) (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b99f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b99f8)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99f8)" (( "(") (binary_expression "puVar38 + 0x2b99f8" (identifier "puVar38") (+ "+") (number_literal "0x2b99f8")) () ")"))))) (; ";")) (if_statement "if (piVar22[0xcd4] != 0) {\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }" (if "if") (parenthesized_expression "(piVar22[0xcd4] != 0)" (( "(") (binary_expression "piVar22[0xcd4] != 0" (subscript_expression "piVar22[0xcd4]" (identifier "piVar22") ([ "[") (number_literal "0xcd4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);\n      pcVar40 = *(code **)(puVar38 + 0x2b99f8);\n    }" ({ "{") (expression_statement "(**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0);" (call_expression "(**(code **)(puVar38 + 0x2b96cc))\n                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b96cc))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b96cc)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b96cc)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b96cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b96cc)" (( "(") (binary_expression "puVar38 + 0x2b96cc" (identifier "puVar38") (+ "+") (number_literal "0x2b96cc")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,\n                 piVar22 + 0xd0)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6b00")) (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5bbc")) (, ",") (number_literal "0x92") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x62ac" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "piVar22 + 0xd0" (identifier "piVar22") (+ "+") (number_literal "0xd0")) () ")"))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b99f8);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b99f8)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b99f8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b99f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b99f8)" (( "(") (binary_expression "puVar38 + 0x2b99f8" (identifier "puVar38") (+ "+") (number_literal "0x2b99f8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined *)(*pcVar40)(0x41,0x78);" (assignment_expression "puVar12 = (undefined *)(*pcVar40)(0x41,0x78)" (identifier "puVar12") (= "=") (cast_expression "(undefined *)(*pcVar40)(0x41,0x78)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar40)(0x41,0x78)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(0x41,0x78)" (( "(") (number_literal "0x41") (, ",") (number_literal "0x78") () ")"))))) (; ";")) (if_statement "if (puVar12 == (undefined *)0x0) {\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }" (if "if") (parenthesized_expression "(puVar12 == (undefined *)0x0)" (( "(") (binary_expression "puVar12 == (undefined *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();\n      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();\n      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);\n      (**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;\n      (**(code **)(puVar38 + 0x2b9560))(uVar26);\n      (**(code **)(puVar38 + 0x2b979c))(uVar21);\n      (**(code **)(puVar38 + 0x2b923c))(uVar21);\n      (**(code **)(puVar38 + 0x2b9dd8))();\n      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);\n      return uVar36;\n    }" ({ "{") (expression_statement "uVar21 = (**(code **)(puVar38 + 0x2b93d8))();" (assignment_expression "uVar21 = (**(code **)(puVar38 + 0x2b93d8))()" (identifier "uVar21") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b93d8))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b93d8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b93d8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b93d8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b93d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b93d8)" (( "(") (binary_expression "puVar38 + 0x2b93d8" (identifier "puVar38") (+ "+") (number_literal "0x2b93d8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();" (assignment_expression "puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))()" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar38 + 0x2b9e9c))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9e9c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9e9c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9e9c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9e9c)" (( "(") (binary_expression "puVar38 + 0x2b9e9c" (identifier "puVar38") (+ "+") (number_literal "0x2b9e9c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);" (assignment_expression "uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11)" (identifier "uVar26") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b98d8))(*puVar11)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b98d8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b98d8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b98d8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b98d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b98d8)" (( "(") (binary_expression "puVar38 + 0x2b98d8" (identifier "puVar38") (+ "+") (number_literal "0x2b98d8")) () ")"))))) () ")")) (argument_list "(*puVar11)" (( "(") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)\n      ;" (call_expression "(**(code **)(puVar38 + 0x2b940c))\n                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b940c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b940c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b940c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b940c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b940c)" (( "(") (binary_expression "puVar38 + 0x2b940c" (identifier "puVar38") (+ "+") (number_literal "0x2b940c")) () ")"))))) () ")")) (argument_list "(uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,\n                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)" (( "(") (identifier "uVar21") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6b00")) (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5bbc" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5bbc")) (, ",") (number_literal "0x96") (, ",") (number_literal "700") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x16f8" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x16f8")) (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x3e28" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x3e28")) (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9560))(uVar26);" (call_expression "(**(code **)(puVar38 + 0x2b9560))(uVar26)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9560))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9560)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9560)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9560)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9560)" (( "(") (binary_expression "puVar38 + 0x2b9560" (identifier "puVar38") (+ "+") (number_literal "0x2b9560")) () ")"))))) () ")")) (argument_list "(uVar26)" (( "(") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b979c))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b979c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b979c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b979c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b979c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b979c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b979c)" (( "(") (binary_expression "puVar38 + 0x2b979c" (identifier "puVar38") (+ "+") (number_literal "0x2b979c")) () ")"))))) () ")")) (argument_list "(uVar21)" (( "(") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b923c))(uVar21);" (call_expression "(**(code **)(puVar38 + 0x2b923c))(uVar21)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b923c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b923c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b923c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b923c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b923c)" (( "(") (binary_expression "puVar38 + 0x2b923c" (identifier "puVar38") (+ "+") (number_literal "0x2b923c")) () ")"))))) () ")")) (argument_list "(uVar21)" (( "(") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar38 + 0x2b9dd8))();" (call_expression "(**(code **)(puVar38 + 0x2b9dd8))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9dd8))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9dd8)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9dd8)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9dd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9dd8)" (( "(") (binary_expression "puVar38 + 0x2b9dd8" (identifier "puVar38") (+ "+") (number_literal "0x2b9dd8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1)" (identifier "uVar36") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9b4c))(1)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9b4c))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9b4c)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9b4c)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9b4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9b4c)" (( "(") (binary_expression "puVar38 + 0x2b9b4c" (identifier "puVar38") (+ "+") (number_literal "0x2b9b4c")) () ")"))))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);" (call_expression "(**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9bc0))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9bc0)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9bc0)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9bc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9bc0)" (( "(") (binary_expression "puVar38 + 0x2b9bc0" (identifier "puVar38") (+ "+") (number_literal "0x2b9bc0")) () ")"))))) () ")")) (argument_list "(puVar12,0,0x1e78)" (( "(") (identifier "puVar12") (, ",") (number_literal "0") (, ",") (number_literal "0x1e78") () ")"))) (; ";")) (expression_statement "puVar13 = (undefined8 *)(puVar12 + 0x10);" (assignment_expression "puVar13 = (undefined8 *)(puVar12 + 0x10)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(puVar12 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x10)" (( "(") (binary_expression "puVar12 + 0x10" (identifier "puVar12") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);" (assignment_expression "uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" (identifier "uVar45") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" (* "*") (cast_expression "(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x1ac0")) () ")"))))) (; ";")) (expression_statement "uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);" (assignment_expression "uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" (identifier "uVar42") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" (* "*") (cast_expression "(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b60" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5b60")) () ")"))))) (; ";")) (do_statement "do {\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);" (do "do") (compound_statement "{\n      while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }\n      *puVar13 = uVar45;\n      puVar13 = puVar13 + 0xf;\n    }" ({ "{") (while_statement "while (iVar5 != 5) {\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }" (while "while") (parenthesized_expression "(iVar5 != 5)" (( "(") (binary_expression "iVar5 != 5" (identifier "iVar5") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n        puVar13[1] = uVar42;\n        puVar13 = puVar13 + 0xf;\n        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;\n      }" ({ "{") (expression_statement "puVar13[1] = uVar42;" (assignment_expression "puVar13[1] = uVar42" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar42")) (; ";")) (expression_statement "puVar13 = puVar13 + 0xf;" (assignment_expression "puVar13 = puVar13 + 0xf" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 0xf" (identifier "puVar13") (+ "+") (number_literal "0xf"))) (; ";")) (if_statement "if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;" (if "if") (parenthesized_expression "((undefined8 *)(puVar12 + 0x1e88) == puVar13)" (( "(") (binary_expression "(undefined8 *)(puVar12 + 0x1e88) == puVar13" (cast_expression "(undefined8 *)(puVar12 + 0x1e88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x1e88)" (( "(") (binary_expression "puVar12 + 0x1e88" (identifier "puVar12") (+ "+") (number_literal "0x1e88")) () ")"))) (== "==") (identifier "puVar13")) () ")")) (goto_statement "goto LAB_000efcf0;" (goto "goto") (statement_identifier "LAB_000efcf0") (; ";"))) (} "}"))) (expression_statement "*puVar13 = uVar45;" (assignment_expression "*puVar13 = uVar45" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar13 = puVar13 + 0xf;" (assignment_expression "puVar13 = puVar13 + 0xf" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 0xf" (identifier "puVar13") (+ "+") (number_literal "0xf"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined8 *)(puVar12 + 0x1e88) != puVar13)" (( "(") (binary_expression "(undefined8 *)(puVar12 + 0x1e88) != puVar13" (cast_expression "(undefined8 *)(puVar12 + 0x1e88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x1e88)" (( "(") (binary_expression "puVar12 + 0x1e88" (identifier "puVar12") (+ "+") (number_literal "0x1e88")) () ")"))) (!= "!=") (identifier "puVar13")) () ")")) (; ";")) (labeled_statement "LAB_000efcf0:\n    if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" (statement_identifier "LAB_000efcf0") (: ":") (if_statement "if (0 < piVar22[7]) {\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" (if "if") (parenthesized_expression "(0 < piVar22[7])" (( "(") (binary_expression "0 < piVar22[7]" (number_literal "0") (< "<") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]"))) () ")")) (compound_statement "{\n      iVar7 = 0;\n      iVar6 = piVar22[6];\n      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);\n      pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);\n    }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" (identifier "iVar6") (= "=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);" (assignment_expression "uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" (identifier "uVar48") (= "=") (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dcc) + 0x3708)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0x3708" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0x3708")) () ")"))))) (; ";")) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9c50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9c50)" (( "(") (binary_expression "puVar38 + 0x2b9c50" (identifier "puVar38") (+ "+") (number_literal "0x2b9c50")) () ")"))))) (; ";")) (do_statement "do {\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      } while (iVar7 < iVar8);" (do "do") (compound_statement "{\n        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);\n        if (iVar8 == 0) break;\n        iVar6 = piVar22[6];\n        iVar9 = 0;\n        if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }\n        iVar8 = piVar22[7];\nLAB_000efe04:\n        iVar7 = iVar7 + 1;\n        pcVar40 = *(code **)(puVar38 + 0x2b9c50);\n      }" ({ "{") (expression_statement "iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);" (assignment_expression "iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26)" (identifier "iVar8") (= "=") (call_expression "(*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(piVar22,0,iVar7,iVar6,1,uVar26)" (( "(") (identifier "piVar22") (, ",") (number_literal "0") (, ",") (identifier "iVar7") (, ",") (identifier "iVar6") (, ",") (number_literal "1") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = piVar22[6];" (assignment_expression "iVar6 = piVar22[6]" (identifier "iVar6") (= "=") (subscript_expression "piVar22[6]" (identifier "piVar22") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar6) {\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          iVar29 = piVar22[0xb0];\n          piVar24 = (int *)piVar22[0xb4];\n          iVar28 = piVar24[0x13];\n          do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);\n        }" ({ "{") (expression_statement "iVar29 = piVar22[0xb0];" (assignment_expression "iVar29 = piVar22[0xb0]" (identifier "iVar29") (= "=") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) (; ";")) (expression_statement "piVar24 = (int *)piVar22[0xb4];" (assignment_expression "piVar24 = (int *)piVar22[0xb4]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar22[0xb4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar22[0xb4]" (identifier "piVar22") ([ "[") (number_literal "0xb4") (] "]")))) (; ";")) (expression_statement "iVar28 = piVar24[0x13];" (assignment_expression "iVar28 = piVar24[0x13]" (identifier "iVar28") (= "=") (subscript_expression "piVar24[0x13]" (identifier "piVar24") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (do_statement "do {\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          } while (iVar6 != iVar9);" (do "do") (compound_statement "{\n            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }\n            if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }\n            iVar9 = iVar9 + 1;\n            iVar8 = iVar27;\n          }" ({ "{") (while_statement "while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }" (while "while") (parenthesized_expression "((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)))" (( "(") (parenthesized_expression "(iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))" (( "(") (comma_expression "iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" (assignment_expression "iVar27 = iVar8 + iVar29 * 4" (identifier "iVar27") (= "=") (binary_expression "iVar8 + iVar29 * 4" (identifier "iVar8") (+ "+") (binary_expression "iVar29 * 4" (identifier "iVar29") (* "*") (number_literal "4")))) (, ",") (binary_expression "iVar28 != 0 &&\n                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" (binary_expression "iVar28 != 0" (identifier "iVar28") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48)" (( "(") (binary_expression "*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48" (pointer_expression "*(float *)(iVar8 + piVar24[0x14] * 4)" (* "*") (cast_expression "(float *)(iVar8 + piVar24[0x14] * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + piVar24[0x14] * 4)" (( "(") (binary_expression "iVar8 + piVar24[0x14] * 4" (identifier "iVar8") (+ "+") (binary_expression "piVar24[0x14] * 4" (subscript_expression "piVar24[0x14]" (identifier "piVar24") ([ "[") (number_literal "0x14") (] "]")) (* "*") (number_literal "4"))) () ")")))) (<= "<=") (cast_expression "(float)uVar48" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar48"))) () ")")))) () ")")) () ")")) (compound_statement "{\n              iVar9 = iVar9 + 1;\n              iVar8 = iVar27;\n              if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }\n            }" ({ "{") (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = iVar27;" (assignment_expression "iVar8 = iVar27" (identifier "iVar8") (= "=") (identifier "iVar27")) (; ";")) (if_statement "if (iVar6 == iVar9) {\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }" (if "if") (parenthesized_expression "(iVar6 == iVar9)" (( "(") (binary_expression "iVar6 == iVar9" (identifier "iVar6") (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n                iVar8 = piVar22[7];\n                goto LAB_000efe04;\n              }" ({ "{") (expression_statement "iVar8 = piVar22[7];" (assignment_expression "iVar8 = piVar22[7]" (identifier "iVar8") (= "=") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]"))) (; ";")) (goto_statement "goto LAB_000efe04;" (goto "goto") (statement_identifier "LAB_000efe04") (; ";")) (} "}"))) (} "}"))) (if_statement "if (0 < iVar29) {\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }" (if "if") (parenthesized_expression "(0 < iVar29)" (( "(") (binary_expression "0 < iVar29" (number_literal "0") (< "<") (identifier "iVar29")) () ")")) (compound_statement "{\n              pfVar23 = (float *)(iVar27 + iVar29 * -4);\n              piVar16 = piVar24;\nLAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);\n            }" ({ "{") (expression_statement "pfVar23 = (float *)(iVar27 + iVar29 * -4);" (assignment_expression "pfVar23 = (float *)(iVar27 + iVar29 * -4)" (identifier "pfVar23") (= "=") (cast_expression "(float *)(iVar27 + iVar29 * -4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + iVar29 * -4)" (( "(") (binary_expression "iVar27 + iVar29 * -4" (identifier "iVar27") (+ "+") (binary_expression "iVar29 * -4" (identifier "iVar29") (* "*") (number_literal "-4"))) () ")")))) (; ";")) (expression_statement "piVar16 = piVar24;" (assignment_expression "piVar16 = piVar24" (identifier "piVar16") (= "=") (identifier "piVar24")) (; ";")) (labeled_statement "LAB_000efd9c:\n              do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);" (statement_identifier "LAB_000efd9c") (: ":") (do_statement "do {\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              } while (piVar24 + iVar29 * 3 != piVar16);" (do "do") (compound_statement "{\n                iVar8 = *piVar16;\n                if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }\n                piVar16 = piVar16 + 3;\n                pfVar23 = pfVar23 + 1;\n              }" ({ "{") (expression_statement "iVar8 = *piVar16;" (assignment_expression "iVar8 = *piVar16" (identifier "iVar8") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (if_statement "if (piVar24[iVar8 * 3 + 1] != 0) {\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }" (if "if") (parenthesized_expression "(piVar24[iVar8 * 3 + 1] != 0)" (( "(") (binary_expression "piVar24[iVar8 * 3 + 1] != 0" (subscript_expression "piVar24[iVar8 * 3 + 1]" (identifier "piVar24") ([ "[") (binary_expression "iVar8 * 3 + 1" (binary_expression "iVar8 * 3" (identifier "iVar8") (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  dVar46 = (double)*pfVar23;\n                  if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }\n                }" ({ "{") (expression_statement "dVar46 = (double)*pfVar23;" (assignment_expression "dVar46 = (double)*pfVar23" (identifier "dVar46") (= "=") (cast_expression "(double)*pfVar23" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar23" (* "*") (identifier "pfVar23")))) (; ";")) (if_statement "if (iVar5 == 5) {\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }\n                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" (if "if") (parenthesized_expression "(iVar5 == 5)" (( "(") (binary_expression "iVar5 == 5" (identifier "iVar5") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }\n                  }" ({ "{") (if_statement "if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }" (if "if") (parenthesized_expression "(dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10))" (( "(") (binary_expression "dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)" (identifier "dVar46") (< "<") (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10)" (* "*") (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x10)" (( "(") (binary_expression "puVar12 + iVar8 * 0x78 + 0x10" (binary_expression "puVar12 + iVar8 * 0x78" (identifier "puVar12") (+ "+") (binary_expression "iVar8 * 0x78" (identifier "iVar8") (* "*") (number_literal "0x78"))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n                      piVar16 = piVar16 + 3;\n                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;\n                      pfVar23 = pfVar23 + 1;\n                      if (piVar24 + iVar29 * 3 == piVar16) break;\n                      goto LAB_000efd9c;\n                    }" ({ "{") (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;" (assignment_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x10)" (* "*") (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x10)" (( "(") (binary_expression "puVar12 + iVar8 * 0x78 + 0x10" (binary_expression "puVar12 + iVar8 * 0x78" (identifier "puVar12") (+ "+") (binary_expression "iVar8 * 0x78" (identifier "iVar8") (* "*") (number_literal "0x78"))) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "dVar46")) (; ";")) (expression_statement "pfVar23 = pfVar23 + 1;" (assignment_expression "pfVar23 = pfVar23 + 1" (identifier "pfVar23") (= "=") (binary_expression "pfVar23 + 1" (identifier "pfVar23") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar24 + iVar29 * 3 == piVar16) break;" (if "if") (parenthesized_expression "(piVar24 + iVar29 * 3 == piVar16)" (( "(") (binary_expression "piVar24 + iVar29 * 3 == piVar16" (binary_expression "piVar24 + iVar29 * 3" (identifier "piVar24") (+ "+") (binary_expression "iVar29 * 3" (identifier "iVar29") (* "*") (number_literal "3"))) (== "==") (identifier "piVar16")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_000efd9c;" (goto "goto") (statement_identifier "LAB_000efd9c") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" (else "else") (if_statement "if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" (if "if") (parenthesized_expression "(*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46)" (( "(") (binary_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18)" (* "*") (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x18)" (( "(") (binary_expression "puVar12 + iVar8 * 0x78 + 0x18" (binary_expression "puVar12 + iVar8 * 0x78" (identifier "puVar12") (+ "+") (binary_expression "iVar8 * 0x78" (identifier "iVar8") (* "*") (number_literal "0x78"))) (+ "+") (number_literal "0x18")) () ")")))) (< "<") (identifier "dVar46")) () ")")) (compound_statement "{\n                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;\n                  }" ({ "{") (expression_statement "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;" (assignment_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46" (pointer_expression "*(double *)(puVar12 + iVar8 * 0x78 + 0x18)" (* "*") (cast_expression "(double *)(puVar12 + iVar8 * 0x78 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + iVar8 * 0x78 + 0x18)" (( "(") (binary_expression "puVar12 + iVar8 * 0x78 + 0x18" (binary_expression "puVar12 + iVar8 * 0x78" (identifier "puVar12") (+ "+") (binary_expression "iVar8 * 0x78" (identifier "iVar8") (* "*") (number_literal "0x78"))) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "dVar46")) (; ";")) (} "}"))))) (} "}"))) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pfVar23 = pfVar23 + 1;" (assignment_expression "pfVar23 = pfVar23 + 1" (identifier "pfVar23") (= "=") (binary_expression "pfVar23 + 1" (identifier "pfVar23") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar24 + iVar29 * 3 != piVar16)" (( "(") (binary_expression "piVar24 + iVar29 * 3 != piVar16" (binary_expression "piVar24 + iVar29 * 3" (identifier "piVar24") (+ "+") (binary_expression "iVar29 * 3" (identifier "iVar29") (* "*") (number_literal "3"))) (!= "!=") (identifier "piVar16")) () ")")) (; ";"))) (} "}"))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = iVar27;" (assignment_expression "iVar8 = iVar27" (identifier "iVar8") (= "=") (identifier "iVar27")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != iVar9)" (( "(") (binary_expression "iVar6 != iVar9" (identifier "iVar6") (!= "!=") (identifier "iVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar8 = piVar22[7];" (assignment_expression "iVar8 = piVar22[7]" (identifier "iVar8") (= "=") (subscript_expression "piVar22[7]" (identifier "piVar22") ([ "[") (number_literal "7") (] "]"))) (; ";")) (labeled_statement "LAB_000efe04:\n        iVar7 = iVar7 + 1;" (statement_identifier "LAB_000efe04") (: ":") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b9c50);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b9c50)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b9c50)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9c50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9c50)" (( "(") (binary_expression "puVar38 + 0x2b9c50" (identifier "puVar38") (+ "+") (number_literal "0x2b9c50")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 < iVar8)" (( "(") (binary_expression "iVar7 < iVar8" (identifier "iVar7") (< "<") (identifier "iVar8")) () ")")) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);" (call_expression "(**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9a30))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9a30)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9a30)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9a30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9a30)" (( "(") (binary_expression "puVar38 + 0x2b9a30" (identifier "puVar38") (+ "+") (number_literal "0x2b9a30")) () ")"))))) () ")")) (argument_list "(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4)" (( "(") (identifier "puVar32") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6ac8")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (if_statement "if (uVar36 < 0x22) {\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }" (if "if") (parenthesized_expression "(uVar36 < 0x22)" (( "(") (binary_expression "uVar36 < 0x22" (identifier "uVar36") (< "<") (number_literal "0x22")) () ")")) (compound_statement "{\n                    \n                    \n      uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();\n      return uVar36;\n    }" ({ "{") (expression_statement "uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ();" (assignment_expression "uVar36 = (*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ()" (identifier "uVar36") (= "=") (call_expression "(*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))\n                         ()" (parenthesized_expression "(*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))" (( "(") (pointer_expression "*(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" (* "*") (cast_expression "(code *)(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c)" (( "(") (binary_expression "puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c" (binary_expression "puVar38 +\n                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" (identifier "puVar38") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4" (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x60b0" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x60b0")) (+ "+") (binary_expression "uVar36 * 4" (identifier "uVar36") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2c0d9c")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}"))) (if_statement "if (piVar22[0xb0] < 1) {\n      iVar4 = piVar22[0xaf];\n    }\n    else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" (if "if") (parenthesized_expression "(piVar22[0xb0] < 1)" (( "(") (binary_expression "piVar22[0xb0] < 1" (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      iVar4 = piVar22[0xaf];\n    }" ({ "{") (expression_statement "iVar4 = piVar22[0xaf];" (assignment_expression "iVar4 = piVar22[0xaf]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" (else "else") (compound_statement "{\n      iVar4 = 0;\n      iVar6 = *(int *)(puVar38 + 0x2b8dd0);\n      do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);\n      iVar4 = piVar22[0xaf];\n    }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = *(int *)(puVar38 + 0x2b8dd0);" (assignment_expression "iVar6 = *(int *)(puVar38 + 0x2b8dd0)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")"))))) (; ";")) (do_statement "do {\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      } while (iVar4 < piVar22[0xb0]);" (do "do") (compound_statement "{\n        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);\n        iVar4 = iVar4 + 1;\n      }" ({ "{") (expression_statement "FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);" (call_expression "FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12)" (identifier "FUN_000ef554") (argument_list "(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12)" (( "(") (identifier "puVar32") (, ",") (identifier "piVar22") (, ",") (identifier "iVar4") (, ",") (binary_expression "iVar6 + -0x6ab0" (identifier "iVar6") (+ "+") (number_literal "-0x6ab0")) (, ",") (identifier "iVar5") (, ",") (identifier "pdStack_4198") (, ",") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 < piVar22[0xb0])" (( "(") (binary_expression "iVar4 < piVar22[0xb0]" (identifier "iVar4") (< "<") (subscript_expression "piVar22[0xb0]" (identifier "piVar22") ([ "[") (number_literal "0xb0") (] "]"))) () ")")) (; ";")) (expression_statement "iVar4 = piVar22[0xaf];" (assignment_expression "iVar4 = piVar22[0xaf]" (identifier "iVar4") (= "=") (subscript_expression "piVar22[0xaf]" (identifier "piVar22") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar4 != 0) {\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );\n    }" ({ "{") (expression_statement "FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  );" (call_expression "FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  )" (identifier "FUN_000ef554") (argument_list "(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12\n                  )" (( "(") (identifier "puVar32") (, ",") (identifier "piVar22") (, ",") (number_literal "4") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + 0x158" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "0x158")) (, ",") (identifier "iVar5") (, ",") (identifier "pdStack_4198") (, ",") (identifier "puVar12") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puVar38 + 0x2b94ac);" (assignment_expression "pcVar40 = *(code **)(puVar38 + 0x2b94ac)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puVar38 + 0x2b94ac)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b94ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b94ac)" (( "(") (binary_expression "puVar38 + 0x2b94ac" (identifier "puVar38") (+ "+") (number_literal "0x2b94ac")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(*pcVar40)(puVar12);" (call_expression "(*pcVar40)(puVar12)" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);" (assignment_expression "iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9208))(puVar32)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9208))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9208)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9208)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9208)" (( "(") (binary_expression "puVar38 + 0x2b9208" (identifier "puVar38") (+ "+") (number_literal "0x2b9208")) () ")"))))) () ")")) (argument_list "(puVar32)" (( "(") (identifier "puVar32") () ")")))) (; ";")) (if_statement "if (iStack_10c == *piVar10) {\n    return (uint)(iVar4 == 0);\n  }" (if "if") (parenthesized_expression "(iStack_10c == *piVar10)" (( "(") (binary_expression "iStack_10c == *piVar10" (identifier "iStack_10c") (== "==") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) () ")")) (compound_statement "{\n    return (uint)(iVar4 == 0);\n  }" ({ "{") (return_statement "return (uint)(iVar4 == 0);" (return "return") (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar38 + 0x2b9550))();" (call_expression "(**(code **)(puVar38 + 0x2b9550))()" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9550))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9550)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9550)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9550)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9550)" (( "(") (binary_expression "puVar38 + 0x2b9550" (identifier "puVar38") (+ "+") (number_literal "0x2b9550")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_000f38b4:\n  uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);" (statement_identifier "LAB_000f38b4") (: ":") (expression_statement "uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);" (assignment_expression "uVar36 = (**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" (identifier "uVar36") (= "=") (call_expression "(**(code **)(puVar38 + 0x2b9af4))\n                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" (parenthesized_expression "(**(code **)(puVar38 + 0x2b9af4))" (( "(") (pointer_expression "**(code **)(puVar38 + 0x2b9af4)" (* "*") (pointer_expression "*(code **)(puVar38 + 0x2b9af4)" (* "*") (cast_expression "(code **)(puVar38 + 0x2b9af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x2b9af4)" (( "(") (binary_expression "puVar38 + 0x2b9af4" (identifier "puVar38") (+ "+") (number_literal "0x2b9af4")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,\n                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c)" (( "(") (binary_expression "*(int *)(puVar38 + 0x2b8dcc) + 0xdd0" (pointer_expression "*(int *)(puVar38 + 0x2b8dcc)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dcc)" (( "(") (binary_expression "puVar38 + 0x2b8dcc" (identifier "puVar38") (+ "+") (number_literal "0x2b8dcc")) () ")")))) (+ "+") (number_literal "0xdd0")) (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x6b00" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x6b00")) (, ",") (number_literal "0x212") (, ",") (binary_expression "*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c" (pointer_expression "*(int *)(puVar38 + 0x2b8dd0)" (* "*") (cast_expression "(int *)(puVar38 + 0x2b8dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0x2b8dd0)" (( "(") (binary_expression "puVar38 + 0x2b8dd0" (identifier "puVar38") (+ "+") (number_literal "0x2b8dd0")) () ")")))) (+ "+") (number_literal "-0x5b7c")) () ")")))) (; ";"))) (return_statement "return uVar36;" (return "return") (identifier "uVar36") (; ";")) (} "}")))

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

ssize_t function_1(type_1 *file,type_2 var_6,char *name,double scale,
                           type_3 *channel_moments)

{
  type_4 uVar1;
  type_5 lVar2;
  type_3 *pCVar3;
  type_6 *puVar4;
  type_7 *pCVar5;
  type_8 *var_4;
  int var_9;
  int var_10;
  int var_11;
  int var_12;
  int var_13;
  int var_14;
  int *piVar13;
  type_8 *var_2;
  type_9 var_70;
  char **var_72;
  ssize_t sVar16;
  type_10 var_35;
  type_10 uVar18;
  int *var_37;
  type_11 var_36;
  type_12 *var_64;
  int var_52;
  int var_66;
  type_13 *pPVar24;
  type_13 *var_61;
  int iVar26;
  type_14 *var_73;
  type_7 *var_60;
  type_15 *var_20;
  type_8 uVar29;
  float *var_74;
  type_14 *var_75;
  type_10 var_33;
  char *pcVar33;
  type_7 CVar34;
  type_7 CVar35;
  type_8 uVar36;
  size_t var_25;
  type_3 *var_43;
  type_7 CVar38;
  int *var_40;
  size_t var_27;
  type_16 var_41;
  size_t var_26;
  type_2 var_57;
  double *var_3;
  double *pdVar45;
  type_1 *var_24;
  double *var_16;
  double *pdVar47;
  type_4 *puVar48;
  type_1 *var_69;
  type_17 var_30;
  type_18 *pTVar51;
  int var_68;
  type_13 *var_62;
  char *var_63;
  int var_51;
  type_6 *var_22;
  type_12 *var_65;
  int var_53;
  type_19 *pcVar59;
  double var_18;
  type_12 uVar61;
  double var_28;
  type_12 uVar63;
  double var_39;
  double var_19;
  double var_17;
  type_20 uVar67;
  double var_8;
  int var_5;
  type_4 *puStack_4198;
  type_21 *var_55;
  int var_50;
  int var_54;
  type_8 uStack_416c;
  type_7 aCStack_4168 [2];
  type_7 aCStack_4160 [2];
  type_12 uStack_4158;
  size_t sStack_4150;
  double dStack_4140;
  double dStack_4138;
  double dStack_4130;
  double dStack_4128;
  double dStack_4120;
  double dStack_4118;
  type_4 auStack_410c [4095];
  type_4 var_34 [4097];
  type_4 auStack_210c [4096];
  char acStack_110c [4096];
  int var_77;
  double *pdStack_108;
  int iStack_104;
  double *pdStack_100;
  type_1 *pFStack_fc;
  type_1 *pFStack_f8;
  type_8 uStack_f4;
  type_6 *puStack_f0;
  int iStack_ec;
  type_8 uStack_e8;
  type_19 *pcStack_e4;
  double dStack_e0;
  double dStack_d0;
  double local_b0;
  double local_a8;
  double local_a0;
  double local_98;
  double powers [8];
  
  puVar4 = PTR___stack_chk_guard_003a9230;
  var_20 = *(type_15 **)PTR___stack_chk_guard_003a9230;
  var_2 = (type_8 *)(var_1 + -0x60f0);
  var_3 = powers;
  do {
    var_4 = var_2 + 4;
    *(type_8 *)var_3 = *var_2;
    uVar36 = var_2[2];
    uVar29 = var_2[3];
    *(type_8 *)((int)var_3 + 4) = var_2[1];
    *(type_8 *)(var_3 + 1) = uVar36;
    *(type_8 *)((int)var_3 + 0xc) = uVar29;
    var_2 = var_4;
    var_3 = var_3 + 2;
  } while (var_4 != (type_8 *)(var_1 + -0x60b0));
  var_3 = (double *)(var_5 + var_6 * 0x80);
  var_9 = (*(type_19 *)PTR_FormatLocaleFile_003a9544)(file,var_1 + -0x6ef0);
  uVar29 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  var_19 = var_3[9];
  uVar36 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = var_3[10];
  local_a8 = (double)var_7(uVar36,local_a8._4_4_);
  local_b0 = var_19;
  var_10 = (*(type_19 *)PTR_FormatLocaleFile_003a9544)(file,var_1 + -0x6ee4,uVar29);
  uVar29 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  var_19 = var_3[0xb];
  uVar36 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = var_3[0xc];
  local_a8 = (double)var_7(uVar36,local_a8._4_4_);
  local_b0 = var_19;
  var_11 = (*(type_19 *)PTR_FormatLocaleFile_003a9544)(file,var_1 + -0x6ec8,uVar29);
  uVar29 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = var_3[0xd];
  var_12 = (*(type_19 *)PTR_FormatLocaleFile_003a9544)(file,var_1 + -0x6e98,uVar29);
  uVar29 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = var_3[0xe];
  var_13 = (*(type_19 *)PTR_FormatLocaleFile_003a9544)(file,var_1 + -0x6e7c,uVar29);
  uVar29 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  var_19 = var_8 * var_3[0xf];
  uVar36 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = var_3[0xf];
  local_a8 = (double)var_7(uVar36,local_a8._4_4_);
  local_b0 = var_19;
  var_14 = (*(type_19 *)PTR_FormatLocaleFile_003a9544)(file,var_1 + -0x6e58,uVar29);
  var_14 = var_9 + var_10 + var_11 + var_12 + var_13 + var_14;
  var_19 = *(double *)(var_15 + 0x1438);
  var_69 = (type_1 *)(var_1 + -0x6e30);
  var_9 = 0;
  var_16 = powers;
  do {
    var_28 = var_8;
    pdVar47 = var_16 + 1;
    pdVar45 = var_3 + 1;
    uVar29 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
    var_17 = *var_3;
    var_8 = var_28;
    var_18 = (double)(*(type_19 *)PTR_pow_003a971c)(var_28,*var_16);
    var_17 = var_17 / var_18;
    uVar36 = (*(type_19 *)PTR_GetMagickPrecision_003a992c)();
    local_98 = *var_3;
    local_a0 = (double)var_7(uVar36,local_a0._4_4_);
    local_b0 = (double)var_7(uVar29,local_b0._4_4_);
    var_10 = var_9 + 1;
    var_18 = (double)var_9 + var_19;
    var_24 = var_69;
    local_a8 = var_17;
    var_9 = (*(type_19 *)PTR_FormatLocaleFile_003a9544)(file);
    var_14 = var_14 + var_9;
    var_3 = pdVar45;
    var_9 = var_10;
    var_16 = pdVar47;
  } while (var_10 != 8);
  if (var_20 == *(type_15 **)puVar4) {
    return var_14;
  }
  pcVar59 = IdentifyImage;
  var_22 = PTR___stack_chk_fail_003a9064;
  (*(type_19 *)PTR___stack_chk_fail_003a9064)();
  uVar36 = var_21(var_18,0);
  piVar13 = *(int **)(var_22 + 0x2b971c);
  puStack_f0 = puVar4;
  uStack_f4 = 8;
  var_77 = *piVar13;
  pdStack_108 = pdVar45;
  iStack_104 = var_10;
  pdStack_100 = pdVar47;
  pFStack_fc = file;
  pFStack_f8 = var_69;
  iStack_ec = var_14;
  uStack_e8 = uVar29;
  pcStack_e4 = pcVar59;
  dStack_e0 = var_17;
  dStack_d0 = var_19;
  if (var_20 == (type_15 *)0x0) goto LAB_000f38b4;
  if (var_20->signature != 0xabacadab) {
    uVar29 = 0x213;
    pcVar59 = *(type_19 **)(var_22 + 0x2b9af4);
    var_9 = *(int *)(var_22 + 0x2b8dd0) + -0x5b7c;
    goto LAB_000f38e8;
  }
  if (var_20->debug == var_23) {
    var_2 = *(type_8 **)(var_22 + 0x2b93d0);
    if (var_24 == (type_1 *)0x0) {
LAB_000efed0:
      var_24 = (type_1 *)*var_2;
    }
  }
  else {
    (**(type_19 **)(var_22 + 0x2b96cc))
              (0x8000,*(int *)(var_22 + 0x2b8dd0) + -0x6b00,*(int *)(var_22 + 0x2b8dd0) + -0x5b8c,
               0x215,*(int *)(var_22 + 0x2b8dd0) + -0x62ac,var_20->filename);
    if (var_24 == (type_1 *)0x0) {
      var_2 = *(type_8 **)(var_22 + 0x2b93d0);
      goto LAB_000efed0;
    }
  }
  var_30 = var_20->colorspace;
  var_9 = (**(type_19 **)(var_22 + 0x2b99ac))(var_20,*(int *)(var_22 + 0x2b8dd0) + -0x6ae8);
  if (var_9 == 0) {
    pTVar51 = &var_20->timer;
    var_34[1] = 0;
    pcVar33 = var_20->filename;
    var_19 = (double)(**(type_19 **)(var_22 + 0x2b97e4))(pTVar51);
    uVar61 = (**(type_19 **)(var_22 + 0x2b9474))(pTVar51);
    (**(type_19 **)(var_22 + 0x2b9b54))(pTVar51);
    var_69 = var_24;
    if ((int)((type_20)var_18 >> 0x20) == 0) {
      pcVar59 = *(type_19 **)(var_22 + 0x2b9198);
      if (var_20->magick_filename[0] != '\0') {
        var_9 = (**(type_19 **)(var_22 + 0x2b95fc))(var_20->magick_filename,pcVar33);
        if (var_9 != 0) {
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6aa8,var_20->magick_filename);
        }
        pcVar59 = *(type_19 **)(var_22 + 0x2b9198);
      }
      var_9 = (*pcVar59)(var_20);
      var_25 = var_20->scene;
      if (((var_9 == 0) && (var_9 = (**(type_19 **)(var_22 + 0x2b995c))(var_20), var_9 == 0)) &&
         (var_25 == 0)) {
        var_9 = *(int *)(var_22 + 0x2b8e38);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_9 + 0x30e8,pcVar33);
      }
      else {
        var_9 = *(int *)(var_22 + 0x2b8e38);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6aa0,pcVar33);
      }
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_9 + 0x30e8,var_20->magick);
      var_26 = var_20->magick_columns;
      var_25 = var_20->magick_rows;
      var_27 = var_20->columns;
      if ((var_26 == 0) && (var_25 == 0)) {
LAB_000f0044:
        var_25 = var_20->rows;
      }
      else if ((var_26 != var_27) || (var_20->rows != var_25)) {
        var_18 = (double)(int)var_26;
        if ((int)var_26 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        var_28 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a94,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),var_28);
        var_27 = var_20->columns;
        goto LAB_000f0044;
      }
      var_18 = (double)(int)var_27;
      if ((int)var_27 < 0) {
        var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
      }
      var_28 = (double)(int)var_25;
      if ((int)var_25 < 0) {
        var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
      }
      (**(type_19 **)(var_22 + 0x2b9a30))
                (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a84,(int)((type_20)var_18 >> 0x20),
                 var_21(var_18,0),var_28);
      var_27 = (var_20->page).width;
      var_25 = (var_20->page).height;
      if (var_27 == 0) {
        var_10 = (var_20->page).x;
        var_11 = (var_20->page).y;
        if ((var_25 != 0) || (var_10 != 0)) {
          var_18 = 0.0;
          goto LAB_000f00d4;
        }
        if (var_11 != 0) {
          var_18 = 0.0;
          goto LAB_000f00d4;
        }
      }
      else {
        var_10 = (var_20->page).x;
        var_11 = (var_20->page).y;
        var_18 = (double)(int)var_27;
        if ((int)var_27 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
LAB_000f00d4:
        var_28 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a74,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),var_28,(double)var_10,(double)var_11);
      }
      var_18 = (double)(int)var_20->depth;
      if ((int)var_20->depth < 0) {
        var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
      }
      (**(type_19 **)(var_22 + 0x2b9a30))
                (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a58,(int)((type_20)var_18 >> 0x20),
                 var_21(var_18,0));
      if (var_20->var_70 != var_29) {
        uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0x49);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_9 + 0x30e8,uVar29);
      }
      if (var_30 != var_31) {
        uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(9,var_30);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_9 + 0x30e8,uVar29);
      }
      var_33 = var_20->total_colors;
      if (var_20->storage_class == var_32) {
        if (var_33 != 0) {
          (**(type_19 **)(var_22 + 0x2b9588))
                    (0,var_33,0,*(int *)(var_22 + 0x2b8e38) + 0x1b28,0x1000,var_34 + 1);
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_9 + 0x30e8,var_34 + 1);
        }
      }
      else {
        var_35 = var_20->colors;
        var_18 = (double)(int)var_35;
        if ((int)var_35 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        if (var_35 < var_33) {
          var_28 = (double)(int)var_33;
          if ((int)var_33 < 0) {
            var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          }
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a44,(int)((type_20)var_28 >> 0x20)
                     ,var_21(var_28,0),var_18);
        }
        else {
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a4c,(int)((type_20)var_18 >> 0x20)
                     ,var_21(var_18,0));
        }
      }
      var_18 = (var_20->error).mean_error_per_pixel;
      if (var_18 != 0.0) {
        var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1400);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a34,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),(var_20->error).normalized_mean_error,
                   (var_20->error).normalized_maximum_error);
      }
      var_10 = (int)var_20->extent;
      var_11 = *(int *)(var_22 + 0x2b8dd4);
      if (*(int *)&var_20->extent != 0 || var_10 != 0) {
        (**(type_19 **)(var_22 + 0x2b9588))
                  (*(int *)&var_20->extent,var_10,1,*(int *)(var_22 + 0x2b8e38) + 0x1b28,0x1000,
                   var_34 + 1);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_9 + 0x30e8,var_34 + 1);
        var_11 = *(int *)(var_22 + 0x2b8dd4);
      }
      uVar63 = (**(type_19 **)(var_22 + 0x2b9ea4))(var_19,*(type_12 *)(var_11 + 0x7ba0));
      var_18 = (double)(**(type_19 **)(var_22 + 0x2b9b5c))(uVar63);
      var_28 = (double)(**(type_19 **)(var_22 + 0x2b9b5c))(var_19);
      var_9 = *(int *)(var_22 + 0x2b8dcc);
      var_28 = (var_19 - var_28) * *(double *)(*(int *)(var_22 + 0x2b8dd4) + -0x1680);
      if (var_28 < *(double *)(var_9 + 0x1410)) {
        var_33 = (type_10)var_28;
      }
      else {
        var_33 = (int)(var_28 - *(double *)(var_9 + 0x1410)) | 0x80000000;
      }
      if (var_18 < *(double *)(var_9 + 0x1410)) {
        var_35 = (type_10)var_18;
      }
      else {
        var_35 = (int)(var_18 - *(double *)(var_9 + 0x1410)) | 0x80000000;
      }
      var_19 = var_19 / *(double *)(var_11 + 0x7ba0);
      if (var_19 < *(double *)(var_9 + 0x1410)) {
        uVar18 = (type_10)var_19;
      }
      else {
        uVar18 = (int)(var_19 - *(double *)(var_9 + 0x1410)) | 0x80000000;
      }
      (**(type_19 **)(var_22 + 0x2b9a30))
                (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6a24,(int)((type_20)uVar61 >> 0x20),
                 (int)uVar61,uVar18,var_35,var_33);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd8) + -0x4bdc);
      pcVar59 = *(type_19 **)(var_22 + 0x2b9978);
    }
    else {
      var_9 = (**(type_19 **)(var_22 + 0x2b9c50))(var_20,0,0,1,1,uVar36);
      (**(type_19 **)(var_22 + 0x2b9500))(var_20,uVar36);
      if (var_9 == 0) {
        var_25 = 0;
        var_55 = (type_21 *)0x0;
        var_37 = (int *)0x0;
        var_11 = 0;
        var_10 = 0;
      }
      else {
        var_25 = (**(type_19 **)(var_22 + 0x2b9100))(var_20,uVar36);
        var_37 = (int *)(**(type_19 **)(var_22 + 0x2b93b0))(var_20,uVar36);
        var_10 = (**(type_19 **)(var_22 + 0x2b99ac))(var_20,*(int *)(var_22 + 0x2b8dd0) + -0x6a0c);
        if (var_10 == 0) {
          var_11 = 0;
          var_10 = 0;
        }
        else {
          var_10 = (**(type_19 **)(var_22 + 0x2b9e14))(var_20,uVar36);
          var_11 = (**(type_19 **)(var_22 + 0x2b9160))(var_20,uVar36);
        }
        var_12 = (**(type_19 **)(var_22 + 0x2b99ac))(var_20,*(int *)(var_22 + 0x2b8dd0) + -0x69f8);
        if (var_12 == 0) {
          var_55 = (type_21 *)0x0;
        }
        else {
          uVar29 = (**(type_19 **)(var_22 + 0x2b982c))(var_12,0,10);
          var_55 = (type_21 *)(**(type_19 **)(var_22 + 0x2b92f0))(var_20,uVar29,uVar36);
        }
      }
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x69e4,pcVar33);
      if (var_20->magick_filename[0] != '\0') {
        var_12 = (**(type_19 **)(var_22 + 0x2b95fc))(var_20->magick_filename,pcVar33);
        if (var_12 != 0) {
          (**(type_19 **)(var_22 + 0x2b9304))(var_20->magick_filename,4,acStack_110c);
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x69cc,acStack_110c);
        }
      }
      pcVar33 = var_20->magick;
      var_12 = (**(type_19 **)(var_22 + 0x2b98f8))(pcVar33,uVar36);
      if (var_12 == 0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x610c,pcVar33);
      }
      else {
        var_13 = (**(type_19 **)(var_22 + 0x2b933c))(var_12);
        if (var_13 == 0) {
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x610c,pcVar33);
        }
        else {
          uVar29 = (**(type_19 **)(var_22 + 0x2b933c))(var_12);
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x69b4,pcVar33,uVar29);
        }
        var_13 = (**(type_19 **)(var_22 + 0x2b9994))(var_12);
        if (var_13 != 0) {
          uVar29 = (**(type_19 **)(var_22 + 0x2b9994))(var_12);
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x69a0,uVar29);
        }
      }
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(5,var_20->storage_class);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x698c,uVar29);
      var_18 = (double)(int)var_20->columns;
      if ((int)var_20->columns < 0) {
        var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
      }
      var_17 = (double)(int)var_20->rows;
      if ((int)var_20->rows < 0) {
        var_17 = var_17 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
      }
      (**(type_19 **)(var_22 + 0x2b9a30))
                (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x697c,(int)((type_20)var_18 >> 0x20),
                 var_21(var_18,0),var_17,(double)(var_20->tile_offset).x,
                 (double)(var_20->tile_offset).y);
      var_26 = var_20->magick_columns;
      var_27 = var_20->magick_rows;
      if (((var_26 != 0) || (var_27 != 0)) &&
         ((var_26 != var_20->columns || (var_20->rows != var_27)))) {
        var_18 = (double)(int)var_26;
        if ((int)var_26 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        var_17 = (double)(int)var_27;
        if ((int)var_27 < 0) {
          var_17 = var_17 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6954,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),var_17);
      }
      var_43 = *(type_3 **)((int)&(var_20->resolution).x + 4);
      pcVar59 = *(type_19 **)(var_22 + 0x2b924c);
      if ((var_20->resolution).x != 0.0) {
        var_18 = (var_20->resolution).y;
        if (var_18 != 0.0) {
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6934,
                     *(type_8 *)&(var_20->resolution).x,var_43,var_18);
          var_18 = (double)(int)var_20->columns;
          if ((int)var_20->columns < 0) {
            var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          }
          var_18 = var_18 / (var_20->resolution).x;
          var_17 = (double)(int)var_20->rows;
          var_43 = var_21(var_18,0);
          if ((int)var_20->rows < 0) {
            var_17 = var_17 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          }
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x691c,(int)((type_20)var_18 >> 0x20)
                     ,var_43,var_17 / (var_20->resolution).y);
        }
        pcVar59 = *(type_19 **)(var_22 + 0x2b924c);
      }
      uVar29 = (*pcVar59)(0x41,var_20->units);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6904,uVar29);
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(9,var_30);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x68f4,uVar29);
      var_36 = (**(type_19 **)(var_22 + 0x2b938c))(var_20,uVar36);
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0x49,var_36);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x68e0,uVar29);
      if (var_20->var_70 != var_36) {
        uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0x49);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x68d4,uVar29);
      }
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0x18,var_20->endian);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x68c0,uVar29);
      if (var_25 != 0) {
        var_27 = var_20->depth;
        var_18 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        if (var_27 == var_25) {
          var_43 = var_21(var_18,0);
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x68ac,(int)((type_20)var_18 >> 0x20)
                    );
        }
        else {
          var_17 = (double)(int)var_27;
          if ((int)var_27 < 0) {
            var_17 = var_17 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          }
          var_43 = var_21(var_17,0);
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6898,(int)((type_20)var_17 >> 0x20)
                     ,var_43,var_18);
        }
      }
      if (var_37 != (int *)0x0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x687c);
        if (var_30 < var_38) {
                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          sVar16 = (*(type_19 *)(var_22 +
                             *(int *)(*(int *)(var_22 + 0x2b8dd0) + -0x6028 + var_30 * 4) +
                             0x2c0d9c))();
          return sVar16;
        }
        if ((int)var_20->number_channels < 1) {
          var_41 = var_20->alpha_trait;
        }
        else {
          var_12 = 0;
          var_13 = *(int *)(var_22 + 0x2b8dd0);
          var_18 = *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          var_40 = var_37;
          do {
            var_17 = (double)var_12;
            var_39 = (double)*var_40;
            if (*var_40 < 0) {
              var_39 = var_39 + var_18;
            }
            var_12 = var_12 + 1;
            (**(type_19 **)(var_22 + 0x2b9a30))
                      (var_24,var_13 + -0x67ac,(int)((type_20)var_17 >> 0x20),var_21(var_17,0),
                       var_39);
            var_40 = var_40 + 0x1e;
          } while (var_12 < (int)var_20->number_channels);
          var_41 = var_20->alpha_trait;
        }
        if (var_41 != var_42) {
          var_18 = (double)var_37[0x78];
          if (var_37[0x78] < 0) {
            var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          }
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x678c,(int)((type_20)var_18 >> 0x20)
                     ,var_21(var_18,0));
        }
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6774);
        var_18 = (double)(int)var_20->columns;
        if ((int)var_20->columns < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        var_17 = (double)(int)var_20->rows;
        if ((int)var_20->rows < 0) {
          var_17 = var_17 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        var_43 = var_21(var_18 * var_17,0);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x675c,
                   (int)((type_20)(var_18 * var_17) >> 0x20));
        if (var_30 < var_38) {
                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          sVar16 = (*(type_19 *)(var_22 +
                             *(int *)(*(int *)(var_22 + 0x2b8dd0) + -0x5fa0 + var_30 * 4) +
                             0x2c0d9c))();
          return sVar16;
        }
        if ((int)var_20->number_channels < 1) {
          var_41 = var_20->alpha_trait;
        }
        else {
          var_43 = *(type_3 **)(var_22 + 0x2b8f68);
          var_13 = *(int *)(var_22 + 0x2b8dd0);
          pCVar3 = var_43 + -0x35;
          var_12 = 0;
          do {
            (**(type_19 **)(var_22 + 0x2b9268))(acStack_110c,0x1000,var_13 + -0x6728);
            var_14 = var_12 + 1;
            (*(type_19 *)(pCVar3->invariant + 4))(var_24,var_12,acStack_110c);
            var_12 = var_14;
          } while (var_14 < (int)var_20->number_channels);
          var_41 = var_20->alpha_trait;
        }
        if (var_41 != var_42) {
          (*(type_19 *)(*(int *)(var_22 + 0x2b8f68) + -0x1a60))
                    (var_24,4,*(int *)(var_22 + 0x2b8dd0) + 0x158);
        }
        if ((var_30 != var_44) &&
           (var_12 = *(int *)(var_22 + 0x2b8f68), var_30 != var_45)) {
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6748);
          (*(type_19 *)(var_12 + -0x1a60))(var_24,0x40,*(int *)(var_22 + 0x2b8dd0) + -0x6730);
        }
        (**(type_19 **)(var_22 + 0x2b94ac))(var_37);
      }
      if (var_10 != 0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6718);
        if (var_30 == var_45) {
          function_1(var_24,CyanPixelChannel,
                              (char *)(*(int *)(var_22 + 0x2b8dd0) + -0x6ab0),var_28,
                              var_43);
          if (var_20->alpha_trait != var_42) {
            var_12 = *(int *)(var_22 + 0x2b8dd0);
LAB_000f339c:
            function_1(var_24,AlphaPixelChannel,(char *)(var_12 + 0x158),var_28,
                                var_43);
            goto LAB_000f33c0;
          }
LAB_000f1160:
          pcVar59 = *(type_19 **)(var_22 + 0x2b94ac);
        }
        else {
          if (var_30 < var_46) {
            if (var_30 != var_47) goto LAB_000f33e4;
            function_1(var_24,CyanPixelChannel,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + 0x17c),var_28,
                                var_43);
            function_1(var_24,var_58,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + 0x194),var_28,
                                var_43);
            function_1(var_24,BluePixelChannel,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + 0x1b4),var_28,
                                var_43);
            function_1(var_24,BlackPixelChannel,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + 0x164),var_28,
                                var_43);
            if (var_20->alpha_trait != var_42) goto LAB_000f3398;
LAB_000f1124:
            (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6704);
            function_1(var_24,CompositePixelChannel,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + -0x6730),var_28,
                                var_43);
            goto LAB_000f1160;
          }
          if ((var_30 == var_48) || (var_30 == var_49)) {
            function_1(var_24,CyanPixelChannel,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + 0x1ac),var_28,
                                var_43);
            function_1(var_24,var_58,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + 0x188),var_28,
                                var_43);
            function_1(var_24,BluePixelChannel,
                                (char *)(*(int *)(var_22 + 0x2b8dd0) + 0x170),var_28,
                                var_43);
LAB_000f3384:
            var_41 = var_20->alpha_trait;
          }
          else {
LAB_000f33e4:
            var_12 = *(int *)(var_22 + 0x2b8dd0);
            if ((int)var_20->number_channels < 1) goto LAB_000f3384;
            var_43 = (type_3 *)0x0;
            var_13 = *(int *)(var_22 + 0x2b8dd4);
            do {
              (**(type_19 **)(var_22 + 0x2b9268))
                        (acStack_110c,0x1000,var_12 + -0x6728,var_43,
                         (double)(int)var_43);
              function_1(var_24,(type_2)var_43,(char *)(var_13 + 0x6b1c)
                                  ,var_28,var_43);
              var_43 = (type_3 *)((int)var_43->invariant + 1);
            } while ((int)var_43 < (int)var_20->number_channels);
            var_41 = var_20->alpha_trait;
          }
          if (var_41 != var_42) {
LAB_000f3398:
            var_12 = *(int *)(var_22 + 0x2b8dd0);
            goto LAB_000f339c;
          }
LAB_000f33c0:
          pcVar59 = *(type_19 **)(var_22 + 0x2b94ac);
          if (var_30 != var_45) goto LAB_000f1124;
        }
        (*pcVar59)(var_10);
      }
      if (var_11 != 0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x66f0);
        if (0 < *(int *)(var_11 + 0x90)) {
          var_12 = *(int *)(var_22 + 0x2b8dd0);
          var_2 = (type_8 *)(var_11 + 0x94);
          var_10 = *(int *)(var_22 + 0x2b8dd4);
          var_13 = 0;
          do {
            uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(9,*var_2);
            (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_12 + -0x62ac,uVar29);
            var_14 = *(int *)(var_11 + 0x90);
            if (var_13 < var_14 + -1) {
              (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_10 + 0x2948);
              var_14 = *(int *)(var_11 + 0x90);
            }
            var_13 = var_13 + 1;
            var_2 = var_2 + 1;
          } while (var_13 < var_14);
        }
        var_10 = *(int *)(var_22 + 0x2b8dd8);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_10 + -0x4bdc);
        if (0 < (int)var_20->number_channels) {
          var_13 = *(int *)(var_22 + 0x2b8dcc);
          var_50 = 0;
          var_18 = *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1438);
          var_12 = *(int *)(var_22 + 0x2b8dd0);
          var_54 = 0;
          var_28 = *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          do {
            var_14 = *(int *)((int)&var_20->channel_map->var_6 + var_50);
            if ((var_14 != 5) && (var_20->channel_map[var_14].traits != var_42)) {
              var_17 = (double)var_14;
              if (var_14 < 0) {
                var_17 = var_17 + var_28;
              }
              var_53 = 0;
              var_14 = *(int *)(var_22 + 0x2b8dd0);
              (**(type_19 **)(var_22 + 0x2b9a30))
                        (var_24,var_12 + -0x66d4,(int)((type_20)var_17 >> 0x20),var_21(var_17,0));
              var_52 = *(int *)(var_22 + 0x2b8dd4);
              do {
                (**(type_19 **)(var_22 + 0x2b9a30))
                          (var_24,var_14 + -0x66c0,
                           (int)((type_20)((double)var_53 + var_18) >> 0x20),
                           var_21((double)var_53 + var_18,0));
                if (0 < *(int *)(var_11 + 0x90)) {
                  var_51 = 0;
                  do {
                    while( true ) {
                      uVar29 = (**(type_19 **)(var_22 + 0x2b9e18))();
                      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_13 + 0x1710,uVar29);
                      if (*(int *)(var_11 + 0x90) + -1 <= var_51) break;
                      var_51 = var_51 + 1;
                      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_52 + 0x2948);
                      if (*(int *)(var_11 + 0x90) <= var_51) goto LAB_000f2c54;
                    }
                    var_51 = var_51 + 1;
                  } while (var_51 < *(int *)(var_11 + 0x90));
                }
LAB_000f2c54:
                var_53 = var_53 + 1;
                (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_10 + -0x4bdc);
              } while (var_53 != 7);
            }
            var_54 = var_54 + 1;
            var_50 = var_50 + 0xc;
          } while (var_54 < (int)var_20->number_channels);
        }
        (**(type_19 **)(var_22 + 0x2b94ac))(var_11);
      }
      if (var_55 != (type_21 *)0x0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x66b0);
        if (var_30 == var_45) {
          var_56
                    (var_24,CyanPixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + -0x6ab0),
                     var_55);
LAB_000f16e0:
          var_41 = var_20->alpha_trait;
        }
        else {
          if (var_45 < var_30) {
            if ((var_30 != var_48) && (var_30 != var_49)) goto LAB_000f348c;
            var_56
                      (var_24,CyanPixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x1ac),
                       var_55);
            var_56
                      (var_24,var_58,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x188),
                       var_55);
            var_56
                      (var_24,BluePixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x170),
                       var_55);
            goto LAB_000f16e0;
          }
          if (var_30 == var_47) {
            var_56
                      (var_24,CyanPixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x17c),
                       var_55);
            var_56
                      (var_24,var_58,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x194),
                       var_55);
            var_56
                      (var_24,BluePixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x1b4),
                       var_55);
            var_56
                      (var_24,BlackPixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x164),
                       var_55);
            goto LAB_000f16e0;
          }
LAB_000f348c:
          var_10 = *(int *)(var_22 + 0x2b8dd0);
          if ((int)var_20->number_channels < 1) goto LAB_000f16e0;
          var_57 = CyanPixelChannel;
          do {
            (**(type_19 **)(var_22 + 0x2b9268))(acStack_110c,0x1000,var_10 + -0x6728);
            var_56(var_24,var_57,acStack_110c,var_55);
            var_57 = var_57 + var_58;
          } while ((int)var_57 < (int)var_20->number_channels);
          var_41 = var_20->alpha_trait;
        }
        if (var_41 != var_42) {
          var_56
                    (var_24,AlphaPixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x158),
                     var_55);
        }
        (**(type_19 **)(var_22 + 0x2b94ac))(var_55);
      }
      if (var_9 != 0) {
        if (var_30 == var_47) {
          uVar29 = (**(type_19 **)(var_22 + 0x2b9e18))();
          (**(type_19 **)(var_22 + 0x2b9508))(var_20,uVar36);
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6660,uVar29);
        }
        if ((var_20->alpha_trait != var_42) && (0 < (int)var_20->rows)) {
          uVar63 = 0;
          var_25 = var_20->columns;
          var_9 = 0;
          pcVar59 = *(type_19 **)(var_22 + 0x2b9c50);
          while (var_10 = (*pcVar59)(var_20,0,var_9,var_25,1,uVar36), var_10 != 0) {
            var_25 = var_20->columns;
            var_27 = 0;
            if (0 < (int)var_25) {
              do {
                if ((var_20->channel_map[4].traits != var_42) &&
                   (*(float *)(var_10 + var_20->channel_map[4].offset * 4) == (float)uVar63)) {
                  (**(type_19 **)(var_22 + 0x2b97a0))(var_20,aCStack_4168);
                  (**(type_19 **)(var_22 + 0x2b94e0))(aCStack_4168,0,0x58);
                  uStack_4158 = var_20->fuzz;
                  aCStack_4168[0] = var_20->storage_class;
                  aCStack_4168[1] = var_20->colorspace;
                  sStack_4150 = var_20->depth;
                  aCStack_4160[0] = var_20->alpha_trait;
                  dStack_4120 = *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1a58);
                  if (var_10 != 0) {
                    var_75 = var_20->channel_map;
                    dStack_4140 = (double)*(float *)(var_10 + var_75->offset * 4);
                    dStack_4138 = (double)*(float *)(var_10 + var_75[1].offset * 4);
                    dStack_4130 = (double)*(float *)(var_10 + var_75[2].offset * 4);
                    if (var_75[3].traits != var_42) {
                      dStack_4128 = (double)*(float *)(var_10 + var_75[3].offset * 4);
                    }
                    if (var_75[4].traits != var_42) {
                      aCStack_4160[0] = BlendPixelTrait;
                      dStack_4120 = (double)*(float *)(var_10 + var_75[4].offset * 4);
                    }
                    if (var_75[5].traits != var_42) {
                      dStack_4118 = (double)*(float *)(var_10 + var_75[5].offset * 4);
                    }
                  }
                  (**(type_19 **)(var_22 + 0x2b92c0))(var_20,aCStack_4168,1,acStack_110c,uVar36);
                  (**(type_19 **)(var_22 + 0x2b9a30))
                            (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6640,acStack_110c);
                  (**(type_19 **)(var_22 + 0x2b94c0))(aCStack_4168,1,acStack_110c);
                  (**(type_19 **)(var_22 + 0x2b9a30))
                            (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6630,acStack_110c);
                  goto LAB_000f1940;
                }
                var_27 = var_27 + 1;
                var_10 = var_10 + var_20->number_channels * 4;
              } while (var_25 != var_27);
            }
            var_9 = var_9 + 1;
            pcVar59 = *(type_19 **)(var_22 + 0x2b9c50);
            if ((int)var_20->rows <= var_9) break;
          }
        }
LAB_000f1940:
        var_9 = (**(type_19 **)(var_22 + 0x2b93f0))(var_20,uVar36);
        if (var_9 == 0) {
          uVar29 = (**(type_19 **)(var_22 + 0x2b99ac))(var_20,*(int *)(var_22 + 0x2b8dd0) + -0x6604);
          var_9 = (**(type_19 **)(var_22 + 0x2b928c))(uVar29);
          if (var_9 != 0) {
            var_9 = (**(type_19 **)(var_22 + 0x2b97a4))(var_20,0,uVar36);
            var_18 = (double)var_9;
            if (var_9 < 0) {
              var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
            }
            (**(type_19 **)(var_22 + 0x2b9a30))
                      (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6628,
                       (int)((type_20)var_18 >> 0x20),var_21(var_18,0));
          }
        }
        else {
          var_9 = (**(type_19 **)(var_22 + 0x2b97a4))(var_20,0,uVar36);
          var_18 = (double)var_9;
          if (var_9 < 0) {
            var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          }
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6628,(int)((type_20)var_18 >> 0x20)
                     ,var_21(var_18,0));
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6614);
          (**(type_19 **)(var_22 + 0x2b97a4))(var_20,var_24,uVar36);
        }
      }
      if (var_20->storage_class == var_59) {
        var_18 = (double)(int)var_20->colors;
        if ((int)var_20->colors < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x65ec,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0));
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x65d0);
        if (0x400 < var_20->colors) goto LAB_000f19dc;
        (**(type_19 **)(var_22 + 0x2b97a0))(var_20,aCStack_4168);
        var_62 = var_20->colormap;
        if ((int)var_20->colors < 1) goto LAB_000f19dc;
        var_10 = *(int *)(var_22 + 0x2b8dd8);
        var_13 = *(int *)(var_22 + 0x2b8dd4) + 0x2804;
        var_11 = *(int *)(var_22 + 0x2b8dd8);
        var_12 = *(int *)(var_22 + 0x2b8dd0);
        var_9 = 0;
        do {
          var_61 = var_62;
          pCVar5 = aCStack_4168;
          do {
            var_60 = pCVar5;
            pPVar24 = var_61;
            puStack_4198 = auStack_210c;
            var_61 = (type_13 *)&pPVar24->fuzz;
            CVar38 = pPVar24->colorspace;
            CVar35 = pPVar24->alpha_trait;
            CVar34 = *(type_7 *)&pPVar24->field_0xc;
            *var_60 = pPVar24->storage_class;
            var_60[1] = CVar38;
            var_60[2] = CVar35;
            var_60[3] = CVar34;
            pCVar5 = var_60 + 4;
          } while (var_61 != (type_13 *)&var_62->index);
          CVar34 = *(type_7 *)((int)&pPVar24->fuzz + 4);
          pcVar59 = *(type_19 **)(var_22 + 0x2b9d28);
          var_60[4] = *(type_7 *)var_61;
          var_60[5] = CVar34;
          (*pcVar59)(acStack_110c,var_10 + -0xad8,0x1000);
          (**(type_19 **)(var_22 + 0x2b9ab8))(aCStack_4168,0,2,acStack_110c);
          (**(type_19 **)(var_22 + 0x2b9d84))(acStack_110c,var_13,0x1000);
          (**(type_19 **)(var_22 + 0x2b9ab8))(aCStack_4168,1,2,acStack_110c);
          (**(type_19 **)(var_22 + 0x2b9d84))(acStack_110c,var_13,0x1000);
          (**(type_19 **)(var_22 + 0x2b9ab8))(aCStack_4168,2,2,acStack_110c);
          if (aCStack_4168[1] == var_47) {
            (**(type_19 **)(var_22 + 0x2b9d84))(acStack_110c,var_13,0x1000);
            (**(type_19 **)(var_22 + 0x2b9ab8))(aCStack_4168,3,2,acStack_110c);
          }
          pcVar59 = *(type_19 **)(var_22 + 0x2b9d84);
          if (aCStack_4160[0] != var_42) {
            (*pcVar59)(acStack_110c,var_13,0x1000);
            (**(type_19 **)(var_22 + 0x2b9ab8))(aCStack_4168,4,2,acStack_110c);
            pcVar59 = *(type_19 **)(var_22 + 0x2b9d84);
          }
          var_62 = var_62 + 1;
          (*pcVar59)(acStack_110c,var_11 + -0x6e0,0x1000);
          (**(type_19 **)(var_22 + 0x2b92c0))(var_20,aCStack_4168,1,auStack_410c,uVar36);
          (**(type_19 **)(var_22 + 0x2b94c0))(aCStack_4168,1,puStack_4198);
          var_14 = var_9 + 1;
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,var_12 + -0x65c0,(int)((type_20)(double)var_9 >> 0x20),
                     var_21((double)var_9,0),acStack_110c,puStack_4198,auStack_410c);
          var_9 = var_14;
        } while (var_14 < (int)var_20->colors);
        uVar29 = *(type_8 *)((int)&(var_20->error).mean_error_per_pixel + 4);
      }
      else {
LAB_000f19dc:
        uVar29 = *(type_8 *)((int)&(var_20->error).mean_error_per_pixel + 4);
      }
      puStack_4198 = auStack_210c;
      if ((double)var_7(*(type_8 *)&(var_20->error).mean_error_per_pixel,uVar29) != 0.0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x65ac);
      }
      if ((var_20->error).normalized_mean_error != 0.0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -26000);
      }
      pcVar59 = *(type_19 **)(var_22 + 0x2b924c);
      if ((var_20->error).normalized_maximum_error != 0.0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6570);
        pcVar59 = *(type_19 **)(var_22 + 0x2b924c);
      }
      uVar29 = (*pcVar59)(0x23,var_20->rendering_intent);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6550,uVar29);
      if (var_20->gamma != 0.0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6538);
      }
      if (((((var_20->chromaticity).red_primary.x != 0.0) ||
           ((var_20->chromaticity).green_primary.x != 0.0)) ||
          ((var_20->chromaticity).blue_primary.x != 0.0)) ||
         ((var_20->chromaticity).white_point.x != 0.0)) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6528);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6514,
                   *(type_8 *)&(var_20->chromaticity).red_primary.x,
                   *(type_8 *)((int)&(var_20->chromaticity).red_primary.x + 4),
                   (var_20->chromaticity).red_primary.y);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x64f8,
                   *(type_8 *)&(var_20->chromaticity).green_primary.x,
                   *(type_8 *)((int)&(var_20->chromaticity).green_primary.x + 4),
                   (var_20->chromaticity).green_primary.y);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x64dc,
                   *(type_8 *)&(var_20->chromaticity).blue_primary.x,
                   *(type_8 *)((int)&(var_20->chromaticity).blue_primary.x + 4),
                   (var_20->chromaticity).blue_primary.y);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x64c0,
                   *(type_8 *)&(var_20->chromaticity).white_point.x,
                   *(type_8 *)((int)&(var_20->chromaticity).white_point.x + 4),
                   (var_20->chromaticity).white_point.y);
      }
      var_27 = (var_20->extract_info).width;
      var_25 = (var_20->extract_info).height;
      if (var_27 * var_25 != 0) {
        var_18 = (double)(int)var_27;
        if ((int)var_27 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        var_28 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x64a4,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),var_28,(double)(var_20->extract_info).x,
                   (double)(var_20->extract_info).y);
      }
      (**(type_19 **)(var_22 + 0x2b92c0))(var_20,&var_20->matte_color,1,auStack_410c,uVar36);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6478,auStack_410c)
      ;
      (**(type_19 **)(var_22 + 0x2b92c0))(var_20,&var_20->background_color,1,auStack_410c,uVar36);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6464,auStack_410c)
      ;
      (**(type_19 **)(var_22 + 0x2b92c0))(var_20,&var_20->border_color,1,auStack_410c,uVar36);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x644c,auStack_410c)
      ;
      (**(type_19 **)(var_22 + 0x2b92c0))(var_20,&var_20->transparent_color,1,auStack_410c,uVar36);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6438,auStack_410c)
      ;
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0x24,var_20->interlace);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x641c,uVar29);
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0x38,var_20->intensity);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6408,uVar29);
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0xd,var_20->compose);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x63f4,uVar29);
      var_27 = (var_20->page).width;
      var_25 = (var_20->page).height;
      if (var_27 == 0) {
        var_9 = (var_20->page).x;
        var_10 = (var_20->page).y;
        if ((var_25 != 0) || (var_9 != 0)) {
          var_18 = 0.0;
          goto LAB_000f29c0;
        }
        var_18 = 0.0;
        if (var_10 != 0) goto LAB_000f29c0;
LAB_000f1db8:
        pcVar59 = *(type_19 **)(var_22 + 0x2b924c);
      }
      else {
        var_9 = (var_20->page).x;
        var_10 = (var_20->page).y;
        var_18 = (double)(int)var_27;
        if ((int)var_27 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
LAB_000f29c0:
        var_28 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x63e4,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),var_28,(double)var_9,(double)var_10);
        var_10 = (var_20->page).x;
        var_9 = (var_20->page).y;
        if ((var_10 != 0) || (pcVar59 = *(type_19 **)(var_22 + 0x2b924c), var_9 != 0)) {
          var_18 = (double)var_10;
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x63b8,(int)((type_20)var_18 >> 0x20)
                     ,var_21(var_18,0),(double)var_9);
          goto LAB_000f1db8;
        }
      }
      uVar29 = (*pcVar59)(0x15,var_20->dispose);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6394,uVar29);
      var_25 = var_20->delay;
      if (var_25 != 0) {
        var_18 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6384,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),(double)var_20->ticks_per_second);
      }
      var_25 = var_20->iterations;
      if (var_25 != 1) {
        var_18 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x636c,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0));
      }
      var_25 = var_20->duration;
      if (var_25 != 0) {
        var_18 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6354,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0));
      }
      var_25 = var_20->scene;
      if (var_20->next == (type_22 *)0x0) {
        pcVar59 = *(type_19 **)(var_22 + 0x2b9764);
        if (var_20->previous != (type_22 *)0x0) goto LAB_000f1e64;
        pcVar59 = *(type_19 **)(var_22 + 0x2b924c);
        if (var_25 != 0) {
          var_18 = (double)(int)var_25;
          if ((int)var_25 < 0) {
            var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          }
          (**(type_19 **)(var_22 + 0x2b9a30))
                    (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6324,(int)((type_20)var_18 >> 0x20)
                     ,var_21(var_18,0));
          goto LAB_000f1ed4;
        }
      }
      else {
        pcVar59 = *(type_19 **)(var_22 + 0x2b9764);
LAB_000f1e64:
        var_9 = (*pcVar59)(var_20);
        var_18 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        var_28 = (double)var_9;
        if (var_9 < 0) {
          var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6340,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0),var_28);
LAB_000f1ed4:
        pcVar59 = *(type_19 **)(var_22 + 0x2b924c);
      }
      uVar29 = (*pcVar59)(0xe,var_20->compression);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6314,uVar29);
      var_25 = var_20->quality;
      if (var_25 != 0) {
        var_18 = (double)(int)var_25;
        if ((int)var_25 < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6300,(int)((type_20)var_18 >> 0x20),
                   var_21(var_18,0));
      }
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(0x36,var_20->orientation);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x62ec,uVar29);
      if (var_20->montage != (char *)0x0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x62d8);
      }
      if (var_20->directory != (char *)0x0) {
        var_9 = (**(type_19 **)(var_22 + 0x2b96bc))();
        (**(type_19 **)(var_22 + 0x2b9974))(var_9 + 0x18,*(int *)(var_22 + 0x2b8dd0) + -0x62c8);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x62c0);
        pcVar33 = var_20->directory;
        var_10 = (int)*pcVar33;
        if (var_10 != 0) {
          var_13 = *(int *)(var_22 + 0x2b8dd0);
          var_14 = *(int *)(var_22 + 0x2b8e38);
          var_18 = *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
          var_11 = *(int *)(var_22 + 0x2b8dd0);
          var_12 = *(int *)(var_22 + 0x2b8dd0);
          var_28 = var_18;
          do {
            var_52 = 1;
            var_63 = pcVar33;
            if (1 < (var_10 + 1U & 0xff)) {
              do {
                var_63 = var_63 + 1;
                if ((byte)(*var_63 + 1U) < 2) break;
              } while ((type_10)((int)var_63 - (int)pcVar33) < 0x1000);
              var_52 = ((int)var_63 - (int)pcVar33) + 1;
            }
            (**(type_19 **)(var_22 + 0x2b9d28))(var_9 + 0x2210,pcVar33,var_52);
            (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_11 + -0x62b0,var_9 + 0x2210);
            uVar29 = (**(type_19 **)(var_22 + 0x2b9a90))(0);
            var_10 = (**(type_19 **)(var_22 + 0x2b9400))(var_9,uVar36);
            (**(type_19 **)(var_22 + 0x2b9a90))(uVar29);
            if (var_10 == 0) {
              (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd8) + -0x4bdc);
            }
            else {
              var_17 = (double)*(int *)(var_10 + 0x3340);
              if (*(int *)(var_10 + 0x3340) < 0) {
                var_17 = var_17 + var_28;
              }
              var_39 = (double)*(int *)(var_10 + 0x3344);
              if (*(int *)(var_10 + 0x3344) < 0) {
                var_39 = var_39 + var_18;
              }
              (**(type_19 **)(var_22 + 0x2b9a30))
                        (var_24,var_12 + -0x62a8,(int)((type_20)var_17 >> 0x20),var_21(var_17,0),
                         var_39,var_10 + 0x2340);
              (**(type_19 **)(var_22 + 0x2b9500))(var_10,uVar36);
              (**(type_19 **)(var_22 + 0x2b9180))(var_10);
              var_52 = (**(type_19 **)(var_22 + 0x2b9dac))(var_10);
              while (var_52 != 0) {
                (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_13 + -0x6294,var_52);
                var_52 = (**(type_19 **)(var_22 + 0x2b98e8))(var_10,var_52,uVar36);
                if (var_52 != 0) {
                  (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_14 + -0x18b8,var_52);
                }
                var_52 = (**(type_19 **)(var_22 + 0x2b9dac))(var_10);
              }
              (**(type_19 **)(var_22 + 0x2b9438))(var_10);
            }
            var_10 = (int)var_63[1];
            pcVar33 = var_63 + 1;
          } while (var_10 != 0);
        }
        (**(type_19 **)(var_22 + 0x2b9ad4))(var_9);
      }
      (**(type_19 **)(var_22 + 0x2b9268))(puStack_4198,0x1000,*(int *)(var_22 + 0x2b8dd0) + -0x628c);
      var_9 = (**(type_19 **)(var_22 + 0x2b98e8))(var_20,puStack_4198,uVar36);
      if (var_9 != 0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6278);
        var_33 = (**(type_19 **)(var_22 + 0x2b9824))(var_9);
        if (0x50 < var_33) {
          (**(type_19 **)(var_22 + 0x2b94e8))(10,var_24);
        }
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8e38) + -0x18b8,var_9);
      }
      var_64 = (type_12 *)(**(type_19 **)(var_22 + 0x2b9da0))(var_20,aCStack_4168,uVar36);
      if (var_64 != (type_12 *)0x0) {
        uStack_416c = (**(type_19 **)(var_22 + 0x2b9d00))(*(int *)(var_22 + 0x2b8dd0) + -0x3688);
        if (0 < (int)aCStack_4168[0]) {
          var_10 = *(int *)(var_22 + 0x2b8dd0);
          var_9 = 0;
          var_65 = var_64;
          do {
            var_9 = var_9 + 1;
            (**(type_19 **)(var_22 + 0x2b9268))
                      (acStack_110c,0x1000,var_10 + -0x6264,var_9,*var_65,var_65[1]);
            (**(type_19 **)(var_22 + 0x2b9894))(&uStack_416c,acStack_110c);
            var_65 = var_65 + 2;
          } while (var_9 < (int)aCStack_4168[0]);
        }
        (**(type_19 **)(var_22 + 0x2b94ac))(var_64);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x625c);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8e38) + -0x18b8,uStack_416c);
        uStack_416c = (**(type_19 **)(var_22 + 0x2b9560))(uStack_416c);
      }
      var_9 = (**(type_19 **)(var_22 + 0x2b91ec))(var_20,aCStack_4168,uVar36);
      if (var_9 != 0) {
        uStack_416c = (**(type_19 **)(var_22 + 0x2b9d00))(*(int *)(var_22 + 0x2b8dd0) + -0x3688);
        if (0 < (int)aCStack_4168[0]) {
          var_10 = *(int *)(var_22 + 0x2b8dd0);
          var_11 = 0;
          do {
            var_11 = var_11 + 1;
            (**(type_19 **)(var_22 + 0x2b9268))(acStack_110c,0x1000,var_10 + -0x6264);
            (**(type_19 **)(var_22 + 0x2b9894))(&uStack_416c,acStack_110c);
          } while (var_11 < (int)aCStack_4168[0]);
        }
        (**(type_19 **)(var_22 + 0x2b94ac))(var_9);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x624c);
        (**(type_19 **)(var_22 + 0x2b9a30))
                  (var_24,*(int *)(var_22 + 0x2b8e38) + -0x18b8,uStack_416c);
        (**(type_19 **)(var_22 + 0x2b9560))(uStack_416c);
      }
      (**(type_19 **)(var_22 + 0x2b9378))(var_20);
      var_9 = (**(type_19 **)(var_22 + 0x2b93f8))(var_20);
      if (var_9 != 0) {
        var_10 = *(int *)(var_22 + 0x2b8dd0);
        var_11 = *(int *)(var_22 + 0x2b8dd4);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6230);
        var_12 = *(int *)(var_22 + 0x2b8dd4);
        var_13 = *(int *)(var_22 + 0x2b8dd0);
        do {
          do {
            var_14 = (**(type_19 **)(var_22 + 0x2b98c4))(var_20,var_9);
          } while (var_14 == 0);
          (**(type_19 **)(var_22 + 0x2b9234))(var_14);
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_10 + -0x6220,var_9);
          var_52 = (**(type_19 **)(var_22 + 0x2b95fc))(var_9,var_11 + -0x1918);
          if (var_52 == 0) {
            var_52 = (**(type_19 **)(var_22 + 0x2b9234))(var_14);
            if (0 < var_52 + -5) {
              var_51 = *(int *)(var_22 + 0x2b8dd0);
              var_53 = 0;
              do {
                var_68 = var_53 + 1;
                var_66 = (**(type_19 **)(var_22 + 0x2b9354))(var_14);
                if (*(char *)(var_66 + var_53) == '\x1c') {
                  (**(type_19 **)(var_22 + 0x2b9354))(var_14);
                  var_66 = (**(type_19 **)(var_22 + 0x2b9354))(var_14);
                  var_33 = (type_10)(byte)(*(char *)(var_66 + var_53 + 2) - 5);
                  if (var_33 < 0xd7) {
                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    sVar16 = (*(type_19 *)(var_22 + *(int *)(var_13 + -0x5f18 + var_33 * 4) + 0x2c0d9c
                                       ))();
                    return sVar16;
                  }
                  var_68 = var_53 + 5;
                  (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_51 + -0x6200,var_12 + -0x1c68);
                  var_66 = (**(type_19 **)(var_22 + 0x2b9354))(var_14);
                  uVar1 = *(type_4 *)(var_66 + var_53 + 3);
                  var_66 = (**(type_19 **)(var_22 + 0x2b9354))(var_14);
                  var_33 = (type_10)var_67(uVar1,*(type_4 *)(var_66 + var_53 + 4));
                  if ((type_10)(var_52 - var_68) <= var_33) {
                    var_33 = var_52 - var_68;
                  }
                  var_53 = (**(type_19 **)(var_22 + 0x2b99f8))(var_33 + 0x1000,1);
                  if (var_53 != 0) {
                    var_66 = (**(type_19 **)(var_22 + 0x2b9354))(var_14);
                    (**(type_19 **)(var_22 + 0x2b9d28))(var_53,var_66 + var_68,var_33 + 1);
                    var_37 = (int *)(**(type_19 **)(var_22 + 0x2b92cc))(var_53);
                    if (var_37 != (int *)0x0) {
                      var_66 = *var_37;
                      var_40 = var_37;
                      while (var_66 != 0) {
                        (**(type_19 **)(var_22 + 0x2b9eac))(var_66,var_24);
                        (**(type_19 **)(var_22 + 0x2b94e8))(10,var_24);
                        iVar26 = (**(type_19 **)(var_22 + 0x2b94ac))(*var_40);
                        var_66 = var_40[1];
                        *var_40 = iVar26;
                        var_40 = var_40 + 1;
                      }
                      (**(type_19 **)(var_22 + 0x2b94ac))(var_37);
                    }
                    (**(type_19 **)(var_22 + 0x2b9560))(var_53);
                  }
                }
                else {
                  var_33 = 1;
                }
                var_53 = var_68 + var_33;
              } while (var_53 < var_52 + -5);
            }
          }
          pcVar59 = *(type_19 **)(var_22 + 0x2b93f8);
          if (var_20->debug != var_23) {
            (**(type_19 **)(var_22 + 0x2b9244))(var_24,var_9,var_14);
            pcVar59 = *(type_19 **)(var_22 + 0x2b93f8);
          }
          var_9 = (*pcVar59)(var_20);
        } while (var_9 != 0);
      }
      (**(type_19 **)(var_22 + 0x2b9180))(var_20);
      var_9 = (**(type_19 **)(var_22 + 0x2b9dac))(var_20);
      if (var_9 != 0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x61e8);
        var_10 = *(int *)(var_22 + 0x2b8dd0);
        var_11 = *(int *)(var_22 + 0x2b8e38);
        do {
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_10 + -0x61d8,var_9);
          var_9 = (**(type_19 **)(var_22 + 0x2b98e8))(var_20,var_9,uVar36);
          if (var_9 != 0) {
            (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_11 + -0x18b8,var_9);
          }
          var_9 = (**(type_19 **)(var_22 + 0x2b9dac))(var_20);
        } while (var_9 != 0);
      }
      (**(type_19 **)(var_22 + 0x2b99e8))(var_20);
      var_9 = (**(type_19 **)(var_22 + 0x2b9b20))(var_20);
      if (var_9 != 0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x61cc);
        var_10 = *(int *)(var_22 + 0x2b8dd0);
        var_11 = *(int *)(var_22 + 0x2b8e38);
        do {
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_10 + -0x61d8,var_9);
          var_9 = (**(type_19 **)(var_22 + 0x2b99ac))(var_20,var_9);
          if (var_9 != 0) {
            (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_11 + -0x18b8,var_9);
          }
          var_9 = (**(type_19 **)(var_22 + 0x2b9b20))(var_20);
        } while (var_9 != 0);
      }
      (**(type_19 **)(var_22 + 0x2b9d50))();
      var_9 = (**(type_19 **)(var_22 + 0x2b970c))();
      if (var_9 != 0) {
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x61bc);
        var_10 = *(int *)(var_22 + 0x2b8dd0);
        var_11 = *(int *)(var_22 + 0x2b8e38);
        do {
          (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_10 + -0x61d8,var_9);
          var_9 = (**(type_19 **)(var_22 + 0x2b9ba4))(3,var_9,uVar36);
          if (var_9 != 0) {
            (**(type_19 **)(var_22 + 0x2b9a30))(var_24,var_11 + -0x18b8,var_9);
          }
          var_9 = (**(type_19 **)(var_22 + 0x2b970c))();
        } while (var_9 != 0);
      }
      puVar48 = var_34 + 1;
      var_9 = *(int *)(var_22 + 0x2b8dd8);
      uVar29 = (**(type_19 **)(var_22 + 0x2b924c))(2,var_20->taint);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x61ac,uVar29);
      (**(type_19 **)(var_22 + 0x2b9588))
                (*(type_8 *)&var_20->extent,(int)var_20->extent,1,
                 *(int *)(var_22 + 0x2b8e38) + 0x1b28,0x1000,puVar48);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x619c,puVar48);
      lVar2 = (type_20)var_20->columns * (type_20)var_20->rows;
      (**(type_19 **)(var_22 + 0x2b9588))
                ((int)((type_20)lVar2 >> 0x20),(int)lVar2,0,var_9 + 0x4ff8,0x1000,puVar48);
      var_33 = (**(type_19 **)(var_22 + 0x2b9824))(puVar48);
      if (1 < var_33) {
        var_34[var_33] = 0;
      }
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x618c,puVar48);
      if (*(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x13f8) < var_19) {
        var_18 = (double)(int)var_20->columns;
        if ((int)var_20->columns < 0) {
          var_18 = var_18 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        var_28 = (double)(int)var_20->rows;
        if ((int)var_20->rows < 0) {
          var_28 = var_28 + *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1418);
        }
        uVar63 = (**(type_19 **)(var_22 + 0x2b8e40))
                           ((var_18 * var_28) / var_19 +
                            *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1400));
        (**(type_19 **)(var_22 + 0x2b9588))
                  ((int)((type_20)uVar63 >> 0x20),(int)uVar63,0,var_9 + 0x4ff8,0x1000,puVar48);
        (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6174,puVar48);
      }
      var_10 = *(int *)(var_22 + 0x2b8dd4);
      (**(type_19 **)(var_22 + 0x2b9a30))
                (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6158,(int)((type_20)uVar61 >> 0x20),
                 (int)uVar61);
      uVar61 = (**(type_19 **)(var_22 + 0x2b9ea4))(var_19,*(type_12 *)(var_10 + 0x7ba0));
      var_18 = (double)(**(type_19 **)(var_22 + 0x2b910c))(uVar61);
      var_28 = (double)(**(type_19 **)(var_22 + 0x2b9b5c))(var_19);
      var_9 = *(int *)(var_22 + 0x2b8dcc);
      if (var_18 < *(double *)(var_9 + 0x1410)) {
        var_33 = (type_10)var_18;
      }
      else {
        var_33 = (int)(var_18 - *(double *)(var_9 + 0x1410)) | 0x80000000;
      }
      var_18 = var_19 / *(double *)(var_10 + 0x7ba0);
      if (var_18 < *(double *)(var_9 + 0x1410)) {
        var_35 = (type_10)var_18;
      }
      else {
        var_35 = (int)(var_18 - *(double *)(var_9 + 0x1410)) | 0x80000000;
      }
      var_19 = (var_19 - var_28) * *(double *)(*(int *)(var_22 + 0x2b8dd4) + -0x1680);
      if (var_19 < *(double *)(var_9 + 0x1410)) {
        uVar18 = (type_10)var_19;
      }
      else {
        uVar18 = (int)(var_19 - *(double *)(var_9 + 0x1410)) | 0x80000000;
      }
      (**(type_19 **)(var_22 + 0x2b9a30))
                (var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6140,var_35,var_33,uVar18);
      uVar29 = (**(type_19 **)(var_22 + 0x2b942c))(0);
      (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x611c,uVar29);
      pcVar59 = *(type_19 **)(var_22 + 0x2b9978);
    }
  }
  else {
    var_70 = (**(type_19 **)(var_22 + 0x2b9b80))(0x44,0,var_9);
    var_10 = (**(type_19 **)(var_22 + 0x2b99ac))(var_20,*(int *)(var_22 + 0x2b8dd0) + -0x6ad8);
    if (var_10 == 0) {
      puStack_4198 = (type_4 *)0x0;
    }
    else {
      puStack_4198 = (type_4 *)(**(type_19 **)(var_22 + 0x2b982c))(var_10,0,10);
    }
    if (var_20->signature != 0xabacadab) {
      uVar29 = 0x90;
      pcVar59 = *(type_19 **)(var_22 + 0x2b9af4);
      var_9 = *(int *)(var_22 + 0x2b8dd0) + -0x5ba4;
LAB_000f38e8:
      sVar16 = (*pcVar59)(*(int *)(var_22 + 0x2b8dd4) + -0x3784,
                          *(int *)(var_22 + 0x2b8dd0) + -0x6b00,uVar29,var_9);
      return sVar16;
    }
    pcVar59 = *(type_19 **)(var_22 + 0x2b99f8);
    if (var_20->debug != var_23) {
      (**(type_19 **)(var_22 + 0x2b96cc))
                (0x8000,*(int *)(var_22 + 0x2b8dd0) + -0x6b00,
                 *(int *)(var_22 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(var_22 + 0x2b8dd0) + -0x62ac,
                 var_20->filename);
      pcVar59 = *(type_19 **)(var_22 + 0x2b99f8);
    }
    var_69 = (type_1 *)(*pcVar59)(0x41,0x78);
    if (var_69 == (type_1 *)0x0) {
      uVar29 = (**(type_19 **)(var_22 + 0x2b93d8))();
      var_2 = (type_8 *)(**(type_19 **)(var_22 + 0x2b9e9c))();
      uVar36 = (**(type_19 **)(var_22 + 0x2b98d8))(*var_2);
      (**(type_19 **)(var_22 + 0x2b940c))
                (uVar29,*(int *)(var_22 + 0x2b8dd0) + -0x6b00,
                 *(int *)(var_22 + 0x2b8dd0) + -0x5bbc,0x96,700,
                 *(int *)(var_22 + 0x2b8dcc) + 0x16f8,*(int *)(var_22 + 0x2b8dcc) + 0x3e28,uVar36)
      ;
      (**(type_19 **)(var_22 + 0x2b9560))(uVar36);
      (**(type_19 **)(var_22 + 0x2b979c))(uVar29);
      (**(type_19 **)(var_22 + 0x2b923c))(uVar29);
      (**(type_19 **)(var_22 + 0x2b9dd8))();
      sVar16 = (**(type_19 **)(var_22 + 0x2b9b4c))(1);
      return sVar16;
    }
    (**(type_19 **)(var_22 + 0x2b9bc0))(var_69,0,0x1e78);
    var_72 = &var_69->_IO_write_base;
    var_18 = *(double *)(*(int *)(var_22 + 0x2b8dcc) + 0x1ac0);
    var_19 = *(double *)(*(int *)(var_22 + 0x2b8dd0) + -0x5b60);
    do {
      while (var_70 != var_71) {
        *(double *)(var_72 + 2) = var_19;
        var_72 = var_72 + 0x1e;
        if ((char **)&var_69[0x33]._old_offset == var_72) goto LAB_000efcf0;
      }
      *(double *)var_72 = var_18;
      var_72 = var_72 + 0x1e;
    } while ((char **)&var_69[0x33]._old_offset != var_72);
LAB_000efcf0:
    if (0 < (int)var_20->rows) {
      var_10 = 0;
      var_25 = var_20->columns;
      uVar67 = (type_20)*(type_10 *)(*(int *)(var_22 + 0x2b8dcc) + 0x3708);
      pcVar59 = *(type_19 **)(var_22 + 0x2b9c50);
      do {
        var_11 = (*pcVar59)(var_20,0,var_10,var_25,1,uVar36);
        if (var_11 == 0) break;
        var_25 = var_20->columns;
        var_27 = 0;
        if (0 < (int)var_25) {
          var_26 = var_20->number_channels;
          var_75 = var_20->channel_map;
          var_41 = var_75[6].traits;
          do {
            while ((var_12 = var_11 + var_26 * 4, var_41 != var_42 &&
                   (*(float *)(var_11 + var_75[6].offset * 4) <= (float)uVar67))) {
              var_27 = var_27 + 1;
              var_11 = var_12;
              if (var_25 == var_27) {
                var_27 = var_20->rows;
                goto LAB_000efe04;
              }
            }
            if (0 < (int)var_26) {
              var_74 = (float *)(var_12 + var_26 * -4);
              var_73 = var_75;
LAB_000efd9c:
              do {
                var_57 = var_73->var_6;
                if (var_75[var_57].traits != var_42) {
                  var_19 = (double)*var_74;
                  if (var_70 == var_71) {
                    if (var_19 < *(double *)(var_69->_shortbuf + var_57 * 0x78 + -0x37)) {
                      var_73 = var_73 + 1;
                      *(double *)(var_69->_shortbuf + var_57 * 0x78 + -0x37) = var_19;
                      var_74 = var_74 + 1;
                      if (var_75 + var_26 == var_73) break;
                      goto LAB_000efd9c;
                    }
                  }
                  else if (*(double *)(var_69->_shortbuf + var_57 * 0x78 + -0x2f) < var_19) {
                    *(double *)(var_69->_shortbuf + var_57 * 0x78 + -0x2f) = var_19;
                  }
                }
                var_73 = var_73 + 1;
                var_74 = var_74 + 1;
              } while (var_75 + var_26 != var_73);
            }
            var_27 = var_27 + 1;
            var_11 = var_12;
          } while (var_25 != var_27);
        }
        var_27 = var_20->rows;
LAB_000efe04:
        var_10 = var_10 + 1;
        pcVar59 = *(type_19 **)(var_22 + 0x2b9c50);
      } while (var_10 < (int)var_27);
    }
    (**(type_19 **)(var_22 + 0x2b9a30))(var_24,*(int *)(var_22 + 0x2b8dd0) + -0x6ac8,var_9);
    if (var_30 < var_38) {
                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      sVar16 = (*(type_19 *)(var_22 +
                         *(int *)(*(int *)(var_22 + 0x2b8dd0) + -0x60b0 + var_30 * 4) + 0x2c0d9c))
                         ();
      return sVar16;
    }
    if ((int)var_20->number_channels < 1) {
      var_41 = var_20->alpha_trait;
    }
    else {
      var_57 = CyanPixelChannel;
      var_9 = *(int *)(var_22 + 0x2b8dd0);
      do {
        var_76
                  (var_24,var_20,var_57,(char *)(var_9 + -0x6ab0),var_70,(size_t)puStack_4198,
                   (type_23 *)var_69);
        var_57 = var_57 + var_58;
      } while ((int)var_57 < (int)var_20->number_channels);
      var_41 = var_20->alpha_trait;
    }
    if (var_41 != var_42) {
      var_76
                (var_24,var_20,AlphaPixelChannel,(char *)(*(int *)(var_22 + 0x2b8dd0) + 0x158),var_70
                 ,(size_t)puStack_4198,(type_23 *)var_69);
    }
    pcVar59 = *(type_19 **)(var_22 + 0x2b94ac);
  }
  (*pcVar59)(var_69);
  var_9 = (**(type_19 **)(var_22 + 0x2b9208))(var_24);
  if (var_77 == *piVar13) {
    return (type_10)(var_9 == 0);
  }
  (**(type_19 **)(var_22 + 0x2b9550))();
LAB_000f38b4:
  sVar16 = (**(type_19 **)(var_22 + 0x2b9af4))
                     (*(int *)(var_22 + 0x2b8dcc) + 0xdd0,*(int *)(var_22 + 0x2b8dd0) + -0x6b00,
                      0x212,*(int *)(var_22 + 0x2b8dd0) + -0x5b7c);
  return sVar16;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (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: (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: (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: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (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: (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)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (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 declarator: (abstract_pointer_declarator))) 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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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: (subscript_expression argument: (identifier) index: (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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) (field_expression argument: (identifier) field: (field_identifier))))))) (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) (binary_expression left: (identifier) right: (number_literal)) (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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) (field_expression argument: (identifier) field: (field_identifier))))))) (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) (binary_expression left: (identifier) right: (number_literal)) (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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) (binary_expression left: (identifier) right: (number_literal)) (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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) (binary_expression left: (identifier) right: (number_literal)) (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (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) (field_expression argument: (identifier) field: (field_identifier))))))) (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) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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) (pointer_expression argument: (identifier))))))) (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: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_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: (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: (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: (binary_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)))) condition: (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 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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))))) 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 (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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (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))) (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: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (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)))) (expression_statement (assignment_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: (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: (char_literal (escape_sequence)))) 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: (identifier) right: (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: (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) right: (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: (pointer_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)) (identifier))))) 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 (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)) (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)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (number_literal))) (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: (number_literal))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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) (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)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (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 (number_literal) (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)) (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) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (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)))))))))) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) 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 (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (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 (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (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)) (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: (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: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression 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: (pointer_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))))))) (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: (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 (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)) (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)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (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) (binary_expression left: (pointer_expression 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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal) (number_literal) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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) 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)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (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 (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))))) (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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) (binary_expression left: (pointer_expression 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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: (pointer_expression 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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) (binary_expression left: (pointer_expression 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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (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) (binary_expression left: (pointer_expression 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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (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)) (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))))) (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))))) (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)) (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: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (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: (identifier) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (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 (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) (binary_expression left: (pointer_expression 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)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_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: (pointer_expression 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)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (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)))))))) right: (number_literal)))) (call_expression function: (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)))))) (number_literal))) (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 (number_literal) (subscript_expression argument: (identifier) index: (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)) (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) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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))))) (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) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) 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) (binary_expression left: (pointer_expression 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: (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) (subscript_expression argument: (identifier) index: (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)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))))) 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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (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: (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: (binary_expression left: (pointer_expression 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: (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal)))))) arguments: (argument_list)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (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: (pointer_expression argument: (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: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (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: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (pointer_expression 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal))) 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: (pointer_expression 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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)))) (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (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: (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: (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: (binary_expression left: (pointer_expression 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: (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal)))))) arguments: (argument_list)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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) (number_literal) (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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression 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: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression 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)))))) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (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)))))) (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: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) 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: (pointer_expression 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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_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: (identifier) arguments: (argument_list (identifier) (number_literal) (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))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (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: (pointer_expression 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: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (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: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (identifier) right: (number_literal))) consequence: (goto_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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))) (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 (number_literal) (pointer_expression argument: (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)) (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: (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) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (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: (pointer_expression 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: (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: (pointer_expression 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) (if_statement condition: (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: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))) 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: (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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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) (binary_expression left: (identifier) right: (number_literal)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier)))) right: (number_literal)))) (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) 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)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))))) (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (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) (binary_expression left: (pointer_expression 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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier) (number_literal) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) 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) (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) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (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: (binary_expression left: (pointer_expression 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: (pointer_expression 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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (binary_expression left: (pointer_expression 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: (pointer_expression 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: (binary_expression left: (pointer_expression 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) (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) (binary_expression left: (pointer_expression 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) (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: (pointer_expression 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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) condition: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (break_statement)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (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)))))) (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: (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 (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (identifier))))) (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (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) (binary_expression left: (pointer_expression 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) (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (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) (binary_expression left: (pointer_expression 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: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (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) (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) (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) (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) (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) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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) (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) (number_literal) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (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) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (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) (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) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (number_literal))) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (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) (binary_expression left: (pointer_expression 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: (pointer_expression 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) (binary_expression left: (pointer_expression 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))))))) (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (subscript_expression argument: (identifier) index: (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)) (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) (binary_expression left: (pointer_expression 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: (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: (pointer_expression 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))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (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)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (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) (binary_expression left: (pointer_expression 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)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (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) (binary_expression left: (pointer_expression 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)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (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) (binary_expression left: (pointer_expression 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)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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) (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) (binary_expression left: (pointer_expression 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) (binary_expression left: (identifier) right: (number_literal)) (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) (binary_expression left: (pointer_expression 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) (binary_expression left: (identifier) right: (number_literal)) (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) (binary_expression left: (pointer_expression 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) (binary_expression left: (identifier) right: (number_literal)) (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) (binary_expression left: (pointer_expression 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: (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) (subscript_expression argument: (identifier) index: (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)) (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) (subscript_expression argument: (identifier) index: (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)) (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) (subscript_expression argument: (identifier) index: (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)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (goto_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) (subscript_expression argument: (identifier) index: (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)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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 (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (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))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (subscript_expression argument: (identifier) index: (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)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (pointer_expression 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) (binary_expression left: (pointer_expression 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)) (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)))) (call_expression function: (identifier) 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 (number_literal) (subscript_expression argument: (identifier) index: (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)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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) (binary_expression left: (pointer_expression 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression 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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) (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: (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: (pointer_expression 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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (break_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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (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)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (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)) (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 (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 (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 (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)))))) alternative: (else_clause (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)))))))) (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: (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 (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)) (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)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (identifier) (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 (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))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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) (binary_expression left: (identifier) right: (number_literal)) (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) (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) (binary_expression left: (identifier) right: (number_literal)) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (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)))))) (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: (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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (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: (number_literal) right: (identifier))) 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) (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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 (binary_expression left: (pointer_expression 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: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (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)))) (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) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (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 (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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 (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))))) (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)) (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) (identifier) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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 (pointer_expression argument: (identifier)) (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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 (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))))) (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)) (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 (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: (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 (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))))) (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))))))) (do_statement body: (compound_statement (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)))))) condition: (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)))) (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)) (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) (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: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (char_literal (escape_sequence)))) 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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (binary_expression left: (identifier) right: (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal)))))) arguments: (argument_list)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier))) 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 (binary_expression left: (identifier) right: (number_literal)) (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))))) (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)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (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 (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (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) (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)))))) condition: (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)))) (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 (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))))) (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))))))) (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) (binary_expression left: (identifier) right: (number_literal)) (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) (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) (binary_expression left: (identifier) right: (number_literal)) (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 (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: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (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))))))) (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) (binary_expression left: (identifier) right: (number_literal)) (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))))) (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) (binary_expression left: (identifier) right: (number_literal)) (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 (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)))) (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) (binary_expression left: (pointer_expression 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: (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))))))) (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) (binary_expression left: (identifier) right: (number_literal)) (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) (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) (binary_expression left: (identifier) right: (number_literal)) (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))))) condition: (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: (pointer_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: (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) (subscript_expression argument: (identifier) index: (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)) (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 (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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 (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (number_literal)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (pointer_expression 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)))) (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: (pointer_expression 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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression 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 (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)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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)) (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)))) (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: (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: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression 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: (pointer_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 (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)) (identifier) (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))))) (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)) (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 (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) (number_literal) (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression 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)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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))))) (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 (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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 (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)))) (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 (number_literal))))) (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (pointer_expression 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 (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))))) (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) consequence: (break_statement)) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression 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: (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal)))))) arguments: (argument_list)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (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))))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) 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: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (return_statement (identifier)))))

uint MASKED(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4,
                 double param_5,int param_6)

{
  undefined1 uVar1;
  int *piVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int *piVar10;
  undefined4 *puVar11;
  undefined *puVar12;
  undefined8 *puVar13;
  uint uVar14;
  uint uVar15;
  int *piVar16;
  int iVar17;
  int *piVar18;
  int iVar19;
  int *piVar20;
  undefined4 uVar21;
  int *piVar22;
  float *pfVar23;
  int *piVar24;
  char *pcVar25;
  undefined4 uVar26;
  int iVar27;
  int iVar28;
  int iVar29;
  double *pdVar30;
  double *pdVar31;
  undefined *puVar32;
  undefined1 *puVar33;
  undefined *puVar34;
  int iVar35;
  uint uVar36;
  char *pcVar37;
  undefined *puVar38;
  undefined8 *puVar39;
  code *pcVar40;
  double dVar41;
  undefined8 uVar42;
  double dVar43;
  double dVar44;
  undefined8 uVar45;
  double dVar46;
  double dVar47;
  ulonglong uVar48;
  double *pdStack_4198;
  int iStack_4190;
  int iStack_418c;
  int iStack_4180;
  undefined4 uStack_416c;
  int aiStack_4168 [4];
  undefined8 uStack_4158;
  int iStack_4150;
  double dStack_4140;
  double dStack_4138;
  double dStack_4130;
  double dStack_4128;
  double dStack_4120;
  double dStack_4118;
  undefined1 auStack_410c [4095];
  undefined1 auStack_310d [4097];
  undefined1 auStack_210c [4096];
  undefined1 auStack_110c [4096];
  int iStack_10c;
  double *pdStack_108;
  int iStack_104;
  undefined8 *puStack_100;
  undefined4 uStack_fc;
  undefined *puStack_f8;
  undefined4 uStack_f4;
  undefined *puStack_f0;
  uint uStack_ec;
  undefined4 uStack_e8;
  code *pcStack_e4;
  double dStack_e0;
  double dStack_d8;
  double dStack_d0;
  double local_b0;
  double local_a8;
  double local_a0;
  double local_98;
  undefined8 local_88;
  undefined4 local_80 [15];
  int *local_44;
  
  puVar12 = PTR___stack_chk_guard_003a9230;
  local_44 = *(int **)PTR___stack_chk_guard_003a9230;
  puVar11 = (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60f0);
  puVar13 = &local_88;
  do {
    puVar3 = puVar11 + 4;
    *(undefined4 *)puVar13 = *puVar11;
    uVar26 = puVar11[2];
    uVar21 = puVar11[3];
    *(undefined4 *)((int)puVar13 + 4) = puVar11[1];
    *(undefined4 *)(puVar13 + 1) = uVar26;
    *(undefined4 *)((int)puVar13 + 0xc) = uVar21;
    puVar11 = puVar3;
    puVar13 = puVar13 + 2;
  } while (puVar3 != (undefined4 *)(PTR_s_t_to_left_003a88e4 + -0x60b0));
  pdVar30 = (double *)(param_6 + param_2 * 0x80);
  iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1,PTR_s_t_to_left_003a88e4 + -0x6ef0);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar46 = pdVar30[9];
  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar30[10];
  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);
  local_b0 = dVar46;
  iVar5 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ee4,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar46 = pdVar30[0xb];
  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar30[0xc];
  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);
  local_b0 = dVar46;
  iVar6 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6ec8,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = pdVar30[0xd];
  iVar7 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e98,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_b0 = pdVar30[0xe];
  iVar8 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e7c,uVar21);
  uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  dVar46 = param_5 * pdVar30[0xf];
  uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
  local_a0 = pdVar30[0xf];
  local_a8 = (double)CONCAT44(uVar26,local_a8._4_4_);
  local_b0 = dVar46;
  iVar9 = (*(code *)PTR_FormatLocaleFile_003a9544)
                    (param_1,PTR_s_t_to_left_003a88e4 + -0x6e58,uVar21);
  uVar36 = iVar4 + iVar5 + iVar6 + iVar7 + iVar8 + iVar9;
  dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
  puVar34 = PTR_s_t_to_left_003a88e4 + -0x6e30;
  iVar4 = 0;
  puVar13 = &local_88;
  do {
    puVar39 = puVar13 + 1;
    pdVar31 = pdVar30 + 1;
    uVar21 = (*(code *)PTR_GetMagickPrecision_003a992c)();
    dVar47 = *pdVar30;
    dVar41 = (double)(*(code *)PTR_pow_003a971c)(param_5,*puVar13);
    dVar47 = dVar47 / dVar41;
    uVar26 = (*(code *)PTR_GetMagickPrecision_003a992c)();
    local_98 = *pdVar30;
    local_a0 = (double)CONCAT44(uVar26,local_a0._4_4_);
    local_b0 = (double)CONCAT44(uVar21,local_b0._4_4_);
    iVar5 = iVar4 + 1;
    dVar41 = (double)iVar4 + dVar46;
    puVar32 = puVar34;
    local_a8 = dVar47;
    iVar4 = (*(code *)PTR_FormatLocaleFile_003a9544)(param_1);
    uVar36 = uVar36 + iVar4;
    pdVar30 = pdVar31;
    iVar4 = iVar5;
    puVar13 = puVar39;
  } while (iVar5 != 8);
  if (local_44 == *(int **)puVar12) {
    return uVar36;
  }
  pcVar40 = IdentifyImage;
  piVar22 = local_44;
  puVar38 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  uVar26 = SUB84(dVar41,0);
  piVar10 = *(int **)(puVar38 + 0x2b971c);
  puStack_f0 = puVar12;
  uStack_f4 = 8;
  iStack_10c = *piVar10;
  pdStack_108 = pdVar31;
  iStack_104 = iVar5;
  puStack_100 = puVar39;
  uStack_fc = param_1;
  puStack_f8 = puVar34;
  uStack_ec = uVar36;
  uStack_e8 = uVar21;
  pcStack_e4 = pcVar40;
  dStack_e0 = dVar47;
  dStack_d8 = param_5;
  dStack_d0 = dVar46;
  if (piVar22 == (int *)0x0) goto LAB_000f38b4;
  if (piVar22[0xcdb] != -0x54535255) {
    uVar21 = 0x213;
    pcVar40 = *(code **)(puVar38 + 0x2b9af4);
    iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5b7c;
    goto LAB_000f38e8;
  }
  if (piVar22[0xcd4] == 0) {
    puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);
    if (puVar32 == (undefined *)0x0) {
LAB_000efed0:
      puVar32 = (undefined *)*puVar11;
    }
  }
  else {
    (**(code **)(puVar38 + 0x2b96cc))
              (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,*(int *)(puVar38 + 0x2b8dd0) + -0x5b8c,
               0x215,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,piVar22 + 0xd0);
    if (puVar32 == (undefined *)0x0) {
      puVar11 = *(undefined4 **)(puVar38 + 0x2b93d0);
      goto LAB_000efed0;
    }
  }
  uVar36 = piVar22[1];
  iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ae8);
  if (iVar4 == 0) {
    piVar16 = piVar22 + 0xbc;
    auStack_310d[1] = 0;
    piVar24 = piVar22 + 0xd0;
    dVar46 = (double)(**(code **)(puVar38 + 0x2b97e4))(piVar16);
    uVar42 = (**(code **)(puVar38 + 0x2b9474))(piVar16);
    (**(code **)(puVar38 + 0x2b9b54))(piVar16);
    puVar12 = puVar32;
    if ((int)((ulonglong)dVar41 >> 0x20) == 0) {
      pcVar40 = *(code **)(puVar38 + 0x2b9198);
      if (*(char *)(piVar22 + 0x4d0) != '\0') {
        iVar4 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);
        if (iVar4 != 0) {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa8,piVar22 + 0x4d0);
        }
        pcVar40 = *(code **)(puVar38 + 0x2b9198);
      }
      iVar4 = (*pcVar40)(piVar22);
      iVar5 = piVar22[0x9b];
      if (((iVar4 == 0) && (iVar4 = (**(code **)(puVar38 + 0x2b995c))(piVar22), iVar4 == 0)) &&
         (iVar5 == 0)) {
        iVar4 = *(int *)(puVar38 + 0x2b8e38);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar24);
      }
      else {
        iVar4 = *(int *)(puVar38 + 0x2b8e38);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6aa0,piVar24);
      }
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,piVar22 + 0x8d0);
      iVar7 = piVar22[0xcd0];
      iVar5 = piVar22[0xcd1];
      iVar6 = piVar22[6];
      if ((iVar7 == 0) && (iVar5 == 0)) {
LAB_000f0044:
        iVar5 = piVar22[7];
      }
      else if ((iVar7 != iVar6) || (piVar22[7] != iVar5)) {
        dVar41 = (double)iVar7;
        if (iVar7 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar5;
        if (iVar5 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a94,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47);
        iVar6 = piVar22[6];
        goto LAB_000f0044;
      }
      dVar41 = (double)iVar6;
      if (iVar6 < 0) {
        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      dVar47 = (double)iVar5;
      if (iVar5 < 0) {
        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a84,(int)((ulonglong)dVar41 >> 0x20),
                 SUB84(dVar41,0),dVar47);
      iVar6 = piVar22[0x8a];
      iVar5 = piVar22[0x8b];
      if (iVar6 == 0) {
        iVar7 = piVar22[0x8c];
        iVar8 = piVar22[0x8d];
        if ((iVar5 != 0) || (iVar7 != 0)) {
          dVar41 = 0.0;
          goto LAB_000f00d4;
        }
        if (iVar8 != 0) {
          dVar41 = 0.0;
          goto LAB_000f00d4;
        }
      }
      else {
        iVar7 = piVar22[0x8c];
        iVar8 = piVar22[0x8d];
        dVar41 = (double)iVar6;
        if (iVar6 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
LAB_000f00d4:
        dVar47 = (double)iVar5;
        if (iVar5 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a74,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47,(double)iVar7,(double)iVar8);
      }
      dVar41 = (double)piVar22[8];
      if (piVar22[8] < 0) {
        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a58,(int)((ulonglong)dVar41 >> 0x20),
                 SUB84(dVar41,0));
      if (piVar22[0xa8] != 0) {
        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);
      }
      if (uVar36 != 0) {
        uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,uVar21);
      }
      uVar36 = piVar22[0xa0];
      if (*piVar22 == 1) {
        if (uVar36 != 0) {
          (**(code **)(puVar38 + 0x2b9588))
                    (0,uVar36,0,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,auStack_310d + 1);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);
        }
      }
      else {
        uVar14 = piVar22[9];
        dVar41 = (double)(int)uVar14;
        if ((int)uVar14 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        if (uVar14 < uVar36) {
          dVar47 = (double)(int)uVar36;
          if ((int)uVar36 < 0) {
            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a44,(int)((ulonglong)dVar47 >> 0x20)
                     ,SUB84(dVar47,0),dVar41);
        }
        else {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a4c,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
        }
      }
      if (*(double *)(piVar22 + 0xb6) != 0.0) {
        dVar41 = *(double *)(piVar22 + 0xb6) + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a34,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),*(undefined8 *)(piVar22 + 0xb8),*(undefined8 *)(piVar22 + 0xba));
      }
      iVar5 = *(int *)(puVar38 + 0x2b8dd4);
      if (piVar22[0xaa] != 0 || piVar22[0xab] != 0) {
        (**(code **)(puVar38 + 0x2b9588))
                  (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,
                   auStack_310d + 1);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar4 + 0x30e8,auStack_310d + 1);
        iVar5 = *(int *)(puVar38 + 0x2b8dd4);
      }
      uVar45 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));
      dVar41 = (double)(**(code **)(puVar38 + 0x2b9b5c))(uVar45);
      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);
      iVar4 = *(int *)(puVar38 + 0x2b8dcc);
      dVar47 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);
      if (dVar47 < *(double *)(iVar4 + 0x1410)) {
        uVar36 = (uint)dVar47;
      }
      else {
        uVar36 = (int)(dVar47 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      if (dVar41 < *(double *)(iVar4 + 0x1410)) {
        uVar14 = (uint)dVar41;
      }
      else {
        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      dVar46 = dVar46 / *(double *)(iVar5 + 0x7ba0);
      if (dVar46 < *(double *)(iVar4 + 0x1410)) {
        uVar15 = (uint)dVar46;
      }
      else {
        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6a24,(int)((ulonglong)uVar42 >> 0x20),
                 (int)uVar42,uVar15,uVar14,uVar36);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);
      pcVar40 = *(code **)(puVar38 + 0x2b9978);
    }
    else {
      iVar4 = (**(code **)(puVar38 + 0x2b9c50))(piVar22,0,0,1,1,uVar26);
      (**(code **)(puVar38 + 0x2b9500))(piVar22,uVar26);
      if (iVar4 == 0) {
        iVar5 = 0;
        iStack_4190 = 0;
        piVar16 = (int *)0x0;
        iVar7 = 0;
        iVar6 = 0;
      }
      else {
        iVar5 = (**(code **)(puVar38 + 0x2b9100))(piVar22,uVar26);
        piVar16 = (int *)(**(code **)(puVar38 + 0x2b93b0))(piVar22,uVar26);
        iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6a0c);
        if (iVar6 == 0) {
          iVar7 = 0;
          iVar6 = 0;
        }
        else {
          iVar6 = (**(code **)(puVar38 + 0x2b9e14))(piVar22,uVar26);
          iVar7 = (**(code **)(puVar38 + 0x2b9160))(piVar22,uVar26);
        }
        iVar8 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x69f8);
        if (iVar8 == 0) {
          iStack_4190 = 0;
        }
        else {
          uVar21 = (**(code **)(puVar38 + 0x2b982c))(iVar8,0,10);
          iStack_4190 = (**(code **)(puVar38 + 0x2b92f0))(piVar22,uVar21,uVar26);
        }
      }
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69e4,piVar24);
      if (*(char *)(piVar22 + 0x4d0) != '\0') {
        iVar8 = (**(code **)(puVar38 + 0x2b95fc))(piVar22 + 0x4d0,piVar24);
        if (iVar8 != 0) {
          (**(code **)(puVar38 + 0x2b9304))(piVar22 + 0x4d0,4,auStack_110c);
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69cc,auStack_110c);
        }
      }
      piVar24 = piVar22 + 0x8d0;
      iVar8 = (**(code **)(puVar38 + 0x2b98f8))(piVar24,uVar26);
      if (iVar8 == 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);
      }
      else {
        iVar9 = (**(code **)(puVar38 + 0x2b933c))(iVar8);
        if (iVar9 == 0) {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x610c,piVar24);
        }
        else {
          uVar21 = (**(code **)(puVar38 + 0x2b933c))(iVar8);
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69b4,piVar24,uVar21);
        }
        iVar9 = (**(code **)(puVar38 + 0x2b9994))(iVar8);
        if (iVar9 != 0) {
          uVar21 = (**(code **)(puVar38 + 0x2b9994))(iVar8);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x69a0,uVar21);
        }
      }
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(5,*piVar22);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x698c,uVar21);
      dVar41 = (double)piVar22[6];
      if (piVar22[6] < 0) {
        dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      dVar47 = (double)piVar22[7];
      if (piVar22[7] < 0) {
        dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x697c,(int)((ulonglong)dVar41 >> 0x20),
                 SUB84(dVar41,0),dVar47,(double)piVar22[0xa6],(double)piVar22[0xa7]);
      iVar9 = piVar22[0xcd0];
      iVar8 = piVar22[0xcd1];
      if (((iVar9 != 0) || (iVar8 != 0)) && ((iVar9 != piVar22[6] || (piVar22[7] != iVar8)))) {
        dVar41 = (double)iVar9;
        if (iVar9 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar8;
        if (iVar8 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6954,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47);
      }
      pcVar40 = *(code **)(puVar38 + 0x2b924c);
      if (*(double *)(piVar22 + 0x86) != 0.0) {
        if (*(double *)(piVar22 + 0x88) != 0.0) {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6934,piVar22[0x86],piVar22[0x87],
                     *(double *)(piVar22 + 0x88));
          dVar41 = (double)piVar22[6];
          if (piVar22[6] < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          dVar47 = (double)piVar22[7];
          if (piVar22[7] < 0) {
            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          dVar47 = dVar47 / *(double *)(piVar22 + 0x88);
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x691c,
                     (int)((ulonglong)(dVar41 / *(double *)(piVar22 + 0x86)) >> 0x20),
                     SUB84(dVar41 / *(double *)(piVar22 + 0x86),0),dVar47);
        }
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      uVar21 = (*pcVar40)(0x41,piVar22[0x80]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6904,uVar21);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,uVar36);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68f4,uVar21);
      iVar8 = (**(code **)(puVar38 + 0x2b938c))(piVar22,uVar26);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49,iVar8);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68e0,uVar21);
      if (piVar22[0xa8] != iVar8) {
        uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x49);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68d4,uVar21);
      }
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x18,piVar22[0x97]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68c0,uVar21);
      if (iVar5 != 0) {
        iVar8 = piVar22[8];
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        if (iVar8 == iVar5) {
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x68ac,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
        }
        else {
          dVar47 = (double)iVar8;
          if (iVar8 < 0) {
            dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6898,(int)((ulonglong)dVar47 >> 0x20)
                     ,SUB84(dVar47,0),dVar41);
          dVar47 = dVar41;
        }
      }
      if (piVar16 != (int *)0x0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x687c);
        if (uVar36 < 0x22) {
                    /* WARNING: Could not recover jumptable at 0x000f0cdc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar36 = (*(code *)(puVar38 +
                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x6028 + uVar36 * 4) +
                             0x2c0d9c))();
          return uVar36;
        }
        if (piVar22[0xb0] < 1) {
          iVar5 = piVar22[0xaf];
        }
        else {
          iVar5 = 0;
          iVar8 = *(int *)(puVar38 + 0x2b8dd0);
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          piVar24 = piVar16;
          do {
            dVar44 = (double)iVar5;
            dVar47 = (double)*piVar24;
            if (*piVar24 < 0) {
              dVar47 = dVar47 + dVar41;
            }
            iVar5 = iVar5 + 1;
            (**(code **)(puVar38 + 0x2b9a30))
                      (puVar32,iVar8 + -0x67ac,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),
                       dVar47);
            piVar24 = piVar24 + 0x1e;
          } while (iVar5 < piVar22[0xb0]);
          iVar5 = piVar22[0xaf];
        }
        if (iVar5 != 0) {
          dVar41 = (double)piVar16[0x78];
          if (piVar16[0x78] < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x678c,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
        }
        if ((uint)piVar22[8] < 0x11) {
          dVar41 = (double)(*(float *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a50) /
                           (float)(int)(0xffff >> (0x10U - piVar22[8] & 0x1f)));
        }
        else {
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);
        }
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6774);
        dVar44 = (double)piVar22[6];
        if (piVar22[6] < 0) {
          dVar44 = dVar44 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar43 = (double)piVar22[7];
        if (piVar22[7] < 0) {
          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x675c,
                   (int)((ulonglong)(dVar44 * dVar43) >> 0x20),SUB84(dVar44 * dVar43,0));
        if (uVar36 < 0x22) {
                    /* WARNING: Could not recover jumptable at 0x000f0f6c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar36 = (*(code *)(puVar38 +
                             *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5fa0 + uVar36 * 4) +
                             0x2c0d9c))();
          return uVar36;
        }
        if (piVar22[0xb0] < 1) {
          iVar5 = piVar22[0xaf];
        }
        else {
          iVar9 = *(int *)(puVar38 + 0x2b8f68);
          iVar8 = *(int *)(puVar38 + 0x2b8dd0);
          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);
          iVar5 = 0;
          do {
            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar8 + -0x6728);
            dVar47 = dVar44 / dVar41;
            iVar28 = iVar5 + 1;
            (*(code *)(iVar9 + -0x1a60))(puVar32,iVar5,auStack_110c);
            iVar5 = iVar28;
          } while (iVar28 < piVar22[0xb0]);
          iVar5 = piVar22[0xaf];
        }
        if (iVar5 != 0) {
          dVar47 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438) / dVar41;
          (*(code *)(*(int *)(puVar38 + 0x2b8f68) + -0x1a60))
                    (puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158);
        }
        if ((uVar36 != 0x21) && (iVar5 = *(int *)(puVar38 + 0x2b8f68), uVar36 != 3)) {
          iVar8 = *(int *)(puVar38 + 0x2b8dcc);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6748);
          dVar47 = *(double *)(iVar8 + 0x1438) / dVar41;
          (*(code *)(iVar5 + -0x1a60))(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);
        }
        (**(code **)(puVar38 + 0x2b94ac))(piVar16);
      }
      if (iVar6 != 0) {
        iVar5 = (1 << (piVar22[8] & 0x1fU)) + -1;
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6718);
        if (uVar36 == 3) {
          dVar47 = dVar41;
          MASKED(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0);
          if (piVar22[0xaf] != 0) {
            iVar5 = *(int *)(puVar38 + 0x2b8dd0);
LAB_000f339c:
            dVar47 = dVar41;
            MASKED(puVar32,4,iVar5 + 0x158);
            goto LAB_000f33c0;
          }
LAB_000f1160:
          pcVar40 = *(code **)(puVar38 + 0x2b94ac);
        }
        else {
          if (uVar36 < 4) {
            if (uVar36 != 2) goto LAB_000f33e4;
            MASKED(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c);
            MASKED(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194);
            MASKED(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4);
            MASKED(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164);
            if (piVar22[0xaf] != 0) goto LAB_000f3398;
LAB_000f1124:
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6704);
            MASKED(puVar32,0x40,*(int *)(puVar38 + 0x2b8dd0) + -0x6730);
            dVar47 = dVar41;
            goto LAB_000f1160;
          }
          if ((uVar36 == 0x15) || (uVar36 == 0x17)) {
            MASKED(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac);
            MASKED(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188);
            dVar47 = dVar41;
            MASKED(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170);
LAB_000f3384:
            iVar5 = piVar22[0xaf];
          }
          else {
LAB_000f33e4:
            iVar5 = *(int *)(puVar38 + 0x2b8dd0);
            if (piVar22[0xb0] < 1) goto LAB_000f3384;
            iVar9 = 0;
            iVar8 = *(int *)(puVar38 + 0x2b8dd4);
            do {
              (**(code **)(puVar38 + 0x2b9268))
                        (auStack_110c,0x1000,iVar5 + -0x6728,iVar9,(double)iVar9);
              dVar47 = dVar41;
              MASKED(puVar32,iVar9,iVar8 + 0x6b1c,iVar9,dVar41,iVar6);
              iVar9 = iVar9 + 1;
            } while (iVar9 < piVar22[0xb0]);
            iVar5 = piVar22[0xaf];
          }
          if (iVar5 != 0) {
LAB_000f3398:
            iVar5 = *(int *)(puVar38 + 0x2b8dd0);
            goto LAB_000f339c;
          }
LAB_000f33c0:
          pcVar40 = *(code **)(puVar38 + 0x2b94ac);
          if (uVar36 != 3) goto LAB_000f1124;
        }
        (*pcVar40)(iVar6);
      }
      if (iVar7 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66f0);
        if (0 < *(int *)(iVar7 + 0x90)) {
          iVar6 = *(int *)(puVar38 + 0x2b8dd0);
          puVar11 = (undefined4 *)(iVar7 + 0x94);
          iVar5 = *(int *)(puVar38 + 0x2b8dd4);
          iVar8 = 0;
          do {
            uVar21 = (**(code **)(puVar38 + 0x2b924c))(9,*puVar11);
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62ac,uVar21);
            iVar9 = *(int *)(iVar7 + 0x90);
            if (iVar8 < iVar9 + -1) {
              (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + 0x2948);
              iVar9 = *(int *)(iVar7 + 0x90);
            }
            iVar8 = iVar8 + 1;
            puVar11 = puVar11 + 1;
          } while (iVar8 < iVar9);
        }
        iVar5 = *(int *)(puVar38 + 0x2b8dd8);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);
        if (0 < piVar22[0xb0]) {
          iVar8 = *(int *)(puVar38 + 0x2b8dcc);
          iStack_418c = 0;
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1438);
          iVar6 = *(int *)(puVar38 + 0x2b8dd0);
          iStack_4180 = 0;
          dVar44 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          do {
            iVar9 = *(int *)(piVar22[0xb4] + iStack_418c);
            if ((iVar9 != 5) && (*(int *)(piVar22[0xb4] + iVar9 * 0xc + 4) != 0)) {
              dVar43 = (double)iVar9;
              if (iVar9 < 0) {
                dVar43 = dVar43 + dVar44;
              }
              iVar27 = 0;
              iVar28 = *(int *)(puVar38 + 0x2b8dd0);
              (**(code **)(puVar38 + 0x2b9a30))
                        (puVar32,iVar6 + -0x66d4,(int)((ulonglong)dVar43 >> 0x20),SUB84(dVar43,0));
              iVar29 = *(int *)(puVar38 + 0x2b8dd4);
              pdStack_4198 = (double *)(iVar9 * 0x2b0 + iVar7 + 0xb0);
              do {
                (**(code **)(puVar38 + 0x2b9a30))
                          (puVar32,iVar28 + -0x66c0,
                           (int)((ulonglong)((double)iVar27 + dVar41) >> 0x20),
                           SUB84((double)iVar27 + dVar41,0));
                if (0 < *(int *)(iVar7 + 0x90)) {
                  iVar9 = 0;
                  pdVar30 = pdStack_4198;
                  do {
                    while( true ) {
                      uVar21 = (**(code **)(puVar38 + 0x2b9e18))();
                      dVar47 = *pdVar30;
                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + 0x1710,uVar21);
                      if (*(int *)(iVar7 + 0x90) + -1 <= iVar9) break;
                      iVar9 = iVar9 + 1;
                      pdVar30 = pdVar30 + 9;
                      (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar29 + 0x2948);
                      if (*(int *)(iVar7 + 0x90) <= iVar9) goto LAB_000f2c54;
                    }
                    iVar9 = iVar9 + 1;
                    pdVar30 = pdVar30 + 9;
                  } while (iVar9 < *(int *)(iVar7 + 0x90));
                }
LAB_000f2c54:
                iVar27 = iVar27 + 1;
                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x4bdc);
                pdStack_4198 = pdStack_4198 + 1;
              } while (iVar27 != 7);
            }
            iStack_4180 = iStack_4180 + 1;
            iStack_418c = iStack_418c + 0xc;
          } while (iStack_4180 < piVar22[0xb0]);
        }
        (**(code **)(puVar38 + 0x2b94ac))(iVar7);
      }
      if (iStack_4190 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x66b0);
        if (uVar36 == 3) {
          FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + -0x6ab0,iStack_4190);
LAB_000f16e0:
          iVar5 = piVar22[0xaf];
        }
        else {
          if (3 < uVar36) {
            if ((uVar36 != 0x15) && (uVar36 != 0x17)) goto LAB_000f348c;
            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x1ac,iStack_4190);
            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x188,iStack_4190);
            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x170,iStack_4190);
            goto LAB_000f16e0;
          }
          if (uVar36 == 2) {
            FUN_000ee85c(puVar32,0,*(int *)(puVar38 + 0x2b8dd0) + 0x17c,iStack_4190);
            FUN_000ee85c(puVar32,1,*(int *)(puVar38 + 0x2b8dd0) + 0x194,iStack_4190);
            FUN_000ee85c(puVar32,2,*(int *)(puVar38 + 0x2b8dd0) + 0x1b4,iStack_4190);
            FUN_000ee85c(puVar32,3,*(int *)(puVar38 + 0x2b8dd0) + 0x164,iStack_4190);
            goto LAB_000f16e0;
          }
LAB_000f348c:
          iVar5 = *(int *)(puVar38 + 0x2b8dd0);
          if (piVar22[0xb0] < 1) goto LAB_000f16e0;
          iVar6 = 0;
          do {
            dVar47 = (double)iVar6;
            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6728);
            FUN_000ee85c(puVar32,iVar6,auStack_110c,iStack_4190,dVar47);
            iVar6 = iVar6 + 1;
          } while (iVar6 < piVar22[0xb0]);
          iVar5 = piVar22[0xaf];
        }
        if (iVar5 != 0) {
          FUN_000ee85c(puVar32,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iStack_4190,dVar47);
        }
        (**(code **)(puVar38 + 0x2b94ac))(iStack_4190);
      }
      if (iVar4 != 0) {
        if (uVar36 == 2) {
          uVar21 = (**(code **)(puVar38 + 0x2b9e18))();
          (**(code **)(puVar38 + 0x2b9508))(piVar22,uVar26);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6660,uVar21);
        }
        if ((piVar22[0xaf] != 0) && (0 < piVar22[7])) {
          uVar45 = 0;
          iVar4 = piVar22[6];
          iVar5 = 0;
          pcVar40 = *(code **)(puVar38 + 0x2b9c50);
          while (iVar6 = (*pcVar40)(piVar22,0,iVar5,iVar4,1,uVar26), iVar6 != 0) {
            iVar4 = piVar22[6];
            iVar7 = 0;
            if (0 < iVar4) {
              do {
                if ((*(int *)(piVar22[0xb4] + 0x34) != 0) &&
                   (*(float *)(iVar6 + *(int *)(piVar22[0xb4] + 0x38) * 4) == (float)uVar45)) {
                  (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);
                  (**(code **)(puVar38 + 0x2b94e0))(aiStack_4168,0,0x58);
                  uStack_4158 = *(undefined8 *)(piVar22 + 0x92);
                  aiStack_4168[0] = *piVar22;
                  aiStack_4168[1] = piVar22[1];
                  iStack_4150 = piVar22[8];
                  aiStack_4168[2] = piVar22[0xaf];
                  dStack_4120 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1a58);
                  if (iVar6 != 0) {
                    iVar4 = piVar22[0xb4];
                    dStack_4140 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 8) * 4);
                    dStack_4138 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x14) * 4);
                    dStack_4130 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x20) * 4);
                    if (*(int *)(iVar4 + 0x28) != 0) {
                      dStack_4128 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x2c) * 4);
                    }
                    if (*(int *)(iVar4 + 0x34) != 0) {
                      aiStack_4168[2] = 4;
                      dStack_4120 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x38) * 4);
                    }
                    if (*(int *)(iVar4 + 0x40) != 0) {
                      dStack_4118 = (double)*(float *)(iVar6 + *(int *)(iVar4 + 0x44) * 4);
                    }
                  }
                  (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_110c,uVar26);
                  (**(code **)(puVar38 + 0x2b9a30))
                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6640,auStack_110c);
                  (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,auStack_110c);
                  (**(code **)(puVar38 + 0x2b9a30))
                            (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6630,auStack_110c);
                  goto LAB_000f1940;
                }
                iVar7 = iVar7 + 1;
                iVar6 = iVar6 + piVar22[0xb0] * 4;
              } while (iVar4 != iVar7);
            }
            iVar5 = iVar5 + 1;
            pcVar40 = *(code **)(puVar38 + 0x2b9c50);
            if (piVar22[7] <= iVar5) break;
          }
        }
LAB_000f1940:
        iVar4 = (**(code **)(puVar38 + 0x2b93f0))(piVar22,uVar26);
        if (iVar4 == 0) {
          uVar21 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6604)
          ;
          iVar4 = (**(code **)(puVar38 + 0x2b928c))(uVar21);
          if (iVar4 != 0) {
            iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);
            dVar41 = (double)iVar4;
            if (iVar4 < 0) {
              dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
            }
            (**(code **)(puVar38 + 0x2b9a30))
                      (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,
                       (int)((ulonglong)dVar41 >> 0x20),SUB84(dVar41,0));
          }
        }
        else {
          iVar4 = (**(code **)(puVar38 + 0x2b97a4))(piVar22,0,uVar26);
          dVar41 = (double)iVar4;
          if (iVar4 < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6628,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6614);
          (**(code **)(puVar38 + 0x2b97a4))(piVar22,puVar32,uVar26);
        }
      }
      if (*piVar22 == 2) {
        dVar41 = (double)piVar22[9];
        if (piVar22[9] < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ec,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65d0);
        if (0x400 < (uint)piVar22[9]) goto LAB_000f19dc;
        (**(code **)(puVar38 + 0x2b97a0))(piVar22,aiStack_4168);
        piVar24 = (int *)piVar22[10];
        if (piVar22[9] < 1) goto LAB_000f19dc;
        iVar5 = *(int *)(puVar38 + 0x2b8dd8);
        iVar8 = *(int *)(puVar38 + 0x2b8dd4) + 0x2804;
        iVar6 = *(int *)(puVar38 + 0x2b8dd8);
        iVar7 = *(int *)(puVar38 + 0x2b8dd0);
        iVar4 = 0;
        do {
          piVar16 = piVar24;
          piVar2 = aiStack_4168;
          do {
            piVar20 = piVar2;
            piVar18 = piVar16;
            pdStack_4198 = (double *)auStack_210c;
            piVar16 = piVar18 + 4;
            iVar29 = piVar18[1];
            iVar28 = piVar18[2];
            iVar9 = piVar18[3];
            *piVar20 = *piVar18;
            piVar20[1] = iVar29;
            piVar20[2] = iVar28;
            piVar20[3] = iVar9;
            piVar2 = piVar20 + 4;
          } while (piVar16 != piVar24 + 0x14);
          iVar9 = piVar18[5];
          pcVar40 = *(code **)(puVar38 + 0x2b9d28);
          piVar20[4] = *piVar16;
          piVar20[5] = iVar9;
          (*pcVar40)(auStack_110c,iVar5 + -0xad8,0x1000);
          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,0,2,auStack_110c);
          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);
          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,1,2,auStack_110c);
          (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);
          (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,2,2,auStack_110c);
          if (aiStack_4168[1] == 2) {
            (**(code **)(puVar38 + 0x2b9d84))(auStack_110c,iVar8,0x1000);
            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,3,2,auStack_110c);
          }
          pcVar40 = *(code **)(puVar38 + 0x2b9d84);
          if (aiStack_4168[2] != 0) {
            (*pcVar40)(auStack_110c,iVar8,0x1000);
            (**(code **)(puVar38 + 0x2b9ab8))(aiStack_4168,4,2,auStack_110c);
            pcVar40 = *(code **)(puVar38 + 0x2b9d84);
          }
          piVar24 = piVar24 + 0x16;
          (*pcVar40)(auStack_110c,iVar6 + -0x6e0,0x1000);
          (**(code **)(puVar38 + 0x2b92c0))(piVar22,aiStack_4168,1,auStack_410c,uVar26);
          (**(code **)(puVar38 + 0x2b94c0))(aiStack_4168,1,pdStack_4198);
          iVar9 = iVar4 + 1;
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,iVar7 + -0x65c0,(int)((ulonglong)(double)iVar4 >> 0x20),
                     SUB84((double)iVar4,0),auStack_110c,pdStack_4198,auStack_410c);
          iVar4 = iVar9;
        } while (iVar9 < piVar22[9]);
        iVar4 = piVar22[0xb7];
      }
      else {
LAB_000f19dc:
        iVar4 = piVar22[0xb7];
      }
      pdStack_4198 = (double *)auStack_210c;
      if ((double)CONCAT44(piVar22[0xb6],iVar4) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x65ac);
      }
      if (*(double *)(piVar22 + 0xb8) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -26000);
      }
      pcVar40 = *(code **)(puVar38 + 0x2b924c);
      if (*(double *)(piVar22 + 0xba) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6570);
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      uVar21 = (*pcVar40)(0x23,piVar22[0x7e]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6550,uVar21);
      if (*(double *)(piVar22 + 100) != 0.0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6538);
      }
      if ((((*(double *)(piVar22 + 0x66) != 0.0) || (*(double *)(piVar22 + 0x6c) != 0.0)) ||
          (*(double *)(piVar22 + 0x72) != 0.0)) || (*(double *)(piVar22 + 0x78) != 0.0)) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6528);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6514,piVar22[0x66],piVar22[0x67],
                   *(undefined8 *)(piVar22 + 0x68));
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64f8,piVar22[0x6c],piVar22[0x6d],
                   *(undefined8 *)(piVar22 + 0x6e));
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64dc,piVar22[0x72],piVar22[0x73],
                   *(undefined8 *)(piVar22 + 0x74));
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64c0,piVar22[0x78],piVar22[0x79],
                   *(undefined8 *)(piVar22 + 0x7a));
      }
      iVar5 = piVar22[0x8e];
      iVar4 = piVar22[0x8f];
      if (iVar5 * iVar4 != 0) {
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar4;
        if (iVar4 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x64a4,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47,(double)piVar22[0x90],(double)piVar22[0x91]);
      }
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0xcdc,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6478,auStack_410c)
      ;
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x22,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6464,auStack_410c)
      ;
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x38,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x644c,auStack_410c)
      ;
      (**(code **)(puVar38 + 0x2b92c0))(piVar22,piVar22 + 0x4e,1,auStack_410c,uVar26);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6438,auStack_410c)
      ;
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x24,piVar22[0x96]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x641c,uVar21);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x38,piVar22[0x95]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6408,uVar21);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0xd,piVar22[0x99]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63f4,uVar21);
      iVar5 = piVar22[0x8a];
      iVar4 = piVar22[0x8b];
      if (iVar5 == 0) {
        iVar6 = piVar22[0x8c];
        iVar7 = piVar22[0x8d];
        if ((iVar4 != 0) || (iVar6 != 0)) {
          dVar41 = 0.0;
          goto LAB_000f29c0;
        }
        dVar41 = 0.0;
        if (iVar7 != 0) goto LAB_000f29c0;
LAB_000f1db8:
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      else {
        iVar6 = piVar22[0x8c];
        iVar7 = piVar22[0x8d];
        dVar41 = (double)iVar5;
        if (iVar5 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
LAB_000f29c0:
        dVar47 = (double)iVar4;
        if (iVar4 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63e4,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47,(double)iVar6,(double)iVar7);
        if ((piVar22[0x8c] != 0) || (pcVar40 = *(code **)(puVar38 + 0x2b924c), piVar22[0x8d] != 0))
        {
          dVar41 = (double)piVar22[0x8c];
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x63b8,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0),(double)piVar22[0x8d]);
          goto LAB_000f1db8;
        }
      }
      uVar21 = (*pcVar40)(0x15,piVar22[0x9a]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6394,uVar21);
      iVar4 = piVar22[0x9c];
      if (iVar4 != 0) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6384,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),(double)piVar22[0x9e]);
      }
      iVar4 = piVar22[0x9f];
      if (iVar4 != 1) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x636c,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
      }
      iVar4 = piVar22[0x9d];
      if (iVar4 != 0) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6354,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
      }
      iVar4 = piVar22[0x9b];
      if (piVar22[0xcda] == 0) {
        pcVar40 = *(code **)(puVar38 + 0x2b9764);
        if (piVar22[0xcd9] != 0) goto LAB_000f1e64;
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
        if (iVar4 != 0) {
          dVar41 = (double)iVar4;
          if (iVar4 < 0) {
            dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          }
          (**(code **)(puVar38 + 0x2b9a30))
                    (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6324,(int)((ulonglong)dVar41 >> 0x20)
                     ,SUB84(dVar41,0));
          goto LAB_000f1ed4;
        }
      }
      else {
        pcVar40 = *(code **)(puVar38 + 0x2b9764);
LAB_000f1e64:
        iVar5 = (*pcVar40)(piVar22);
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)iVar5;
        if (iVar5 < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6340,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0),dVar47);
LAB_000f1ed4:
        pcVar40 = *(code **)(puVar38 + 0x2b924c);
      }
      uVar21 = (*pcVar40)(0xe,piVar22[2]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6314,uVar21);
      iVar4 = piVar22[3];
      if (iVar4 != 0) {
        dVar41 = (double)iVar4;
        if (iVar4 < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6300,(int)((ulonglong)dVar41 >> 0x20),
                   SUB84(dVar41,0));
      }
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(0x36,piVar22[4]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62ec,uVar21);
      if (piVar22[0x81] != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62d8);
      }
      if (piVar22[0x82] != 0) {
        iVar4 = (**(code **)(puVar38 + 0x2b96bc))();
        (**(code **)(puVar38 + 0x2b9974))(iVar4 + 0x18,*(int *)(puVar38 + 0x2b8dd0) + -0x62c8);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x62c0);
        pcVar25 = (char *)piVar22[0x82];
        iVar5 = (int)*pcVar25;
        if (iVar5 != 0) {
          iVar8 = *(int *)(puVar38 + 0x2b8dd0);
          iVar9 = *(int *)(puVar38 + 0x2b8e38);
          dVar41 = *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
          iVar6 = *(int *)(puVar38 + 0x2b8dd0);
          iVar7 = *(int *)(puVar38 + 0x2b8dd0);
          dVar47 = dVar41;
          do {
            iVar28 = 1;
            pcVar37 = pcVar25;
            if (1 < (iVar5 + 1U & 0xff)) {
              do {
                pcVar37 = pcVar37 + 1;
                if ((byte)(*pcVar37 + 1U) < 2) break;
              } while ((uint)((int)pcVar37 - (int)pcVar25) < 0x1000);
              iVar28 = ((int)pcVar37 - (int)pcVar25) + 1;
            }
            (**(code **)(puVar38 + 0x2b9d28))(iVar4 + 0x2210,pcVar25,iVar28);
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x62b0,iVar4 + 0x2210);
            uVar21 = (**(code **)(puVar38 + 0x2b9a90))(0);
            iVar5 = (**(code **)(puVar38 + 0x2b9400))(iVar4,uVar26);
            (**(code **)(puVar38 + 0x2b9a90))(uVar21);
            if (iVar5 == 0) {
              (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd8) + -0x4bdc);
            }
            else {
              dVar44 = (double)*(int *)(iVar5 + 0x3340);
              if (*(int *)(iVar5 + 0x3340) < 0) {
                dVar44 = dVar44 + dVar47;
              }
              dVar43 = (double)*(int *)(iVar5 + 0x3344);
              if (*(int *)(iVar5 + 0x3344) < 0) {
                dVar43 = dVar43 + dVar41;
              }
              (**(code **)(puVar38 + 0x2b9a30))
                        (puVar32,iVar7 + -0x62a8,(int)((ulonglong)dVar44 >> 0x20),SUB84(dVar44,0),
                         dVar43,iVar5 + 0x2340);
              (**(code **)(puVar38 + 0x2b9500))(iVar5,uVar26);
              (**(code **)(puVar38 + 0x2b9180))(iVar5);
              iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);
              while (iVar28 != 0) {
                (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar8 + -0x6294,iVar28);
                iVar28 = (**(code **)(puVar38 + 0x2b98e8))(iVar5,iVar28,uVar26);
                if (iVar28 != 0) {
                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar9 + -0x18b8,iVar28);
                }
                iVar28 = (**(code **)(puVar38 + 0x2b9dac))(iVar5);
              }
              (**(code **)(puVar38 + 0x2b9438))(iVar5);
            }
            iVar5 = (int)pcVar37[1];
            pcVar25 = pcVar37 + 1;
          } while (iVar5 != 0);
        }
        (**(code **)(puVar38 + 0x2b9ad4))(iVar4);
      }
      (**(code **)(puVar38 + 0x2b9268))(pdStack_4198,0x1000,*(int *)(puVar38 + 0x2b8dd0) + -0x628c);
      iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,pdStack_4198,uVar26);
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6278);
        uVar36 = (**(code **)(puVar38 + 0x2b9824))(iVar4);
        if (0x50 < uVar36) {
          (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);
        }
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,iVar4);
      }
      puVar13 = (undefined8 *)(**(code **)(puVar38 + 0x2b9da0))(piVar22,aiStack_4168,uVar26);
      if (puVar13 != (undefined8 *)0x0) {
        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);
        if (0 < aiStack_4168[0]) {
          iVar5 = *(int *)(puVar38 + 0x2b8dd0);
          iVar4 = 0;
          puVar39 = puVar13;
          do {
            iVar4 = iVar4 + 1;
            (**(code **)(puVar38 + 0x2b9268))
                      (auStack_110c,0x1000,iVar5 + -0x6264,iVar4,*puVar39,puVar39[1]);
            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);
            puVar39 = puVar39 + 2;
          } while (iVar4 < aiStack_4168[0]);
        }
        (**(code **)(puVar38 + 0x2b94ac))(puVar13);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x625c);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);
        uStack_416c = (**(code **)(puVar38 + 0x2b9560))(uStack_416c);
      }
      iVar4 = (**(code **)(puVar38 + 0x2b91ec))(piVar22,aiStack_4168,uVar26);
      if (iVar4 != 0) {
        uStack_416c = (**(code **)(puVar38 + 0x2b9d00))(*(int *)(puVar38 + 0x2b8dd0) + -0x3688);
        if (0 < aiStack_4168[0]) {
          iVar5 = *(int *)(puVar38 + 0x2b8dd0);
          iVar6 = 0;
          do {
            iVar6 = iVar6 + 1;
            (**(code **)(puVar38 + 0x2b9268))(auStack_110c,0x1000,iVar5 + -0x6264);
            (**(code **)(puVar38 + 0x2b9894))(&uStack_416c,auStack_110c);
          } while (iVar6 < aiStack_4168[0]);
        }
        (**(code **)(puVar38 + 0x2b94ac))(iVar4);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x624c);
        (**(code **)(puVar38 + 0x2b9a30))
                  (puVar32,*(int *)(puVar38 + 0x2b8e38) + -0x18b8,uStack_416c);
        (**(code **)(puVar38 + 0x2b9560))(uStack_416c);
      }
      (**(code **)(puVar38 + 0x2b9378))(piVar22);
      iVar4 = (**(code **)(puVar38 + 0x2b93f8))(piVar22);
      if (iVar4 != 0) {
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8dd4);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6230);
        iVar7 = *(int *)(puVar38 + 0x2b8dd4);
        iVar8 = *(int *)(puVar38 + 0x2b8dd0);
        do {
          do {
            iVar9 = (**(code **)(puVar38 + 0x2b98c4))(piVar22,iVar4);
          } while (iVar9 == 0);
          (**(code **)(puVar38 + 0x2b9234))(iVar9);
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x6220,iVar4);
          iVar28 = (**(code **)(puVar38 + 0x2b95fc))(iVar4,iVar6 + -0x1918);
          if (iVar28 == 0) {
            iVar28 = (**(code **)(puVar38 + 0x2b9234))(iVar9);
            if (0 < iVar28 + -5) {
              iVar27 = *(int *)(puVar38 + 0x2b8dd0);
              iVar29 = 0;
              do {
                iVar35 = iVar29 + 1;
                iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                if (*(char *)(iVar17 + iVar29) == '\x1c') {
                  (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  uVar36 = (uint)(byte)(*(char *)(iVar17 + iVar29 + 2) - 5);
                  if (uVar36 < 0xd7) {
                    /* WARNING: Could not recover jumptable at 0x000f2dd8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    uVar36 = (*(code *)(puVar38 + *(int *)(iVar8 + -0x5f18 + uVar36 * 4) + 0x2c0d9c)
                             )();
                    return uVar36;
                  }
                  iVar35 = iVar29 + 5;
                  (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar27 + -0x6200,iVar7 + -0x1c68);
                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  uVar1 = *(undefined1 *)(iVar17 + iVar29 + 3);
                  iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                  uVar36 = (uint)CONCAT11(uVar1,*(undefined1 *)(iVar17 + iVar29 + 4));
                  if ((uint)(iVar28 - iVar35) <= uVar36) {
                    uVar36 = iVar28 - iVar35;
                  }
                  iVar29 = (**(code **)(puVar38 + 0x2b99f8))(uVar36 + 0x1000,1);
                  if (iVar29 != 0) {
                    iVar17 = (**(code **)(puVar38 + 0x2b9354))(iVar9);
                    (**(code **)(puVar38 + 0x2b9d28))(iVar29,iVar17 + iVar35,uVar36 + 1);
                    piVar24 = (int *)(**(code **)(puVar38 + 0x2b92cc))(iVar29);
                    if (piVar24 != (int *)0x0) {
                      iVar17 = *piVar24;
                      piVar16 = piVar24;
                      while (iVar17 != 0) {
                        (**(code **)(puVar38 + 0x2b9eac))(iVar17,puVar32);
                        (**(code **)(puVar38 + 0x2b94e8))(10,puVar32);
                        iVar19 = (**(code **)(puVar38 + 0x2b94ac))(*piVar16);
                        iVar17 = piVar16[1];
                        *piVar16 = iVar19;
                        piVar16 = piVar16 + 1;
                      }
                      (**(code **)(puVar38 + 0x2b94ac))(piVar24);
                    }
                    (**(code **)(puVar38 + 0x2b9560))(iVar29);
                  }
                }
                else {
                  uVar36 = 1;
                }
                iVar29 = iVar35 + uVar36;
              } while (iVar29 < iVar28 + -5);
            }
          }
          pcVar40 = *(code **)(puVar38 + 0x2b93f8);
          if (piVar22[0xcd4] != 0) {
            (**(code **)(puVar38 + 0x2b9244))(puVar32,iVar4,iVar9);
            pcVar40 = *(code **)(puVar38 + 0x2b93f8);
          }
          iVar4 = (*pcVar40)(piVar22);
        } while (iVar4 != 0);
      }
      (**(code **)(puVar38 + 0x2b9180))(piVar22);
      iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61e8);
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8e38);
        do {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);
          iVar4 = (**(code **)(puVar38 + 0x2b98e8))(piVar22,iVar4,uVar26);
          if (iVar4 != 0) {
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);
          }
          iVar4 = (**(code **)(puVar38 + 0x2b9dac))(piVar22);
        } while (iVar4 != 0);
      }
      (**(code **)(puVar38 + 0x2b99e8))(piVar22);
      iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61cc);
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8e38);
        do {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);
          iVar4 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,iVar4);
          if (iVar4 != 0) {
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);
          }
          iVar4 = (**(code **)(puVar38 + 0x2b9b20))(piVar22);
        } while (iVar4 != 0);
      }
      (**(code **)(puVar38 + 0x2b9d50))();
      iVar4 = (**(code **)(puVar38 + 0x2b970c))();
      if (iVar4 != 0) {
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61bc);
        iVar5 = *(int *)(puVar38 + 0x2b8dd0);
        iVar6 = *(int *)(puVar38 + 0x2b8e38);
        do {
          (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar5 + -0x61d8,iVar4);
          iVar4 = (**(code **)(puVar38 + 0x2b9ba4))(3,iVar4,uVar26);
          if (iVar4 != 0) {
            (**(code **)(puVar38 + 0x2b9a30))(puVar32,iVar6 + -0x18b8,iVar4);
          }
          iVar4 = (**(code **)(puVar38 + 0x2b970c))();
        } while (iVar4 != 0);
      }
      puVar33 = auStack_310d + 1;
      iVar4 = *(int *)(puVar38 + 0x2b8dd8);
      uVar21 = (**(code **)(puVar38 + 0x2b924c))(2,piVar22[5]);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x61ac,uVar21);
      (**(code **)(puVar38 + 0x2b9588))
                (piVar22[0xaa],piVar22[0xab],1,*(int *)(puVar38 + 0x2b8e38) + 0x1b28,0x1000,puVar33)
      ;
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x619c,puVar33);
      (**(code **)(puVar38 + 0x2b9588))
                ((int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7] >> 0x20),
                 (int)((ulonglong)(uint)piVar22[6] * (ulonglong)(uint)piVar22[7]),0,iVar4 + 0x4ff8,
                 0x1000,puVar33);
      uVar36 = (**(code **)(puVar38 + 0x2b9824))(puVar33);
      if (1 < uVar36) {
        auStack_310d[uVar36] = 0;
      }
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x618c,puVar33);
      if (*(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x13f8) < dVar46) {
        dVar41 = (double)piVar22[6];
        if (piVar22[6] < 0) {
          dVar41 = dVar41 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        dVar47 = (double)piVar22[7];
        if (piVar22[7] < 0) {
          dVar47 = dVar47 + *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1418);
        }
        uVar45 = (**(code **)(puVar38 + 0x2b8e40))
                           ((dVar41 * dVar47) / dVar46 +
                            *(double *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1400));
        (**(code **)(puVar38 + 0x2b9588))
                  ((int)((ulonglong)uVar45 >> 0x20),(int)uVar45,0,iVar4 + 0x4ff8,0x1000,puVar33);
        (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6174,puVar33);
      }
      iVar5 = *(int *)(puVar38 + 0x2b8dd4);
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6158,(int)((ulonglong)uVar42 >> 0x20),
                 (int)uVar42);
      uVar42 = (**(code **)(puVar38 + 0x2b9ea4))(dVar46,*(undefined8 *)(iVar5 + 0x7ba0));
      dVar41 = (double)(**(code **)(puVar38 + 0x2b910c))(uVar42);
      dVar47 = (double)(**(code **)(puVar38 + 0x2b9b5c))(dVar46);
      iVar4 = *(int *)(puVar38 + 0x2b8dcc);
      if (dVar41 < *(double *)(iVar4 + 0x1410)) {
        uVar36 = (uint)dVar41;
      }
      else {
        uVar36 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      dVar41 = dVar46 / *(double *)(iVar5 + 0x7ba0);
      if (dVar41 < *(double *)(iVar4 + 0x1410)) {
        uVar14 = (uint)dVar41;
      }
      else {
        uVar14 = (int)(dVar41 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      dVar46 = (dVar46 - dVar47) * *(double *)(*(int *)(puVar38 + 0x2b8dd4) + -0x1680);
      if (dVar46 < *(double *)(iVar4 + 0x1410)) {
        uVar15 = (uint)dVar46;
      }
      else {
        uVar15 = (int)(dVar46 - *(double *)(iVar4 + 0x1410)) | 0x80000000;
      }
      (**(code **)(puVar38 + 0x2b9a30))
                (puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6140,uVar14,uVar36,uVar15);
      uVar21 = (**(code **)(puVar38 + 0x2b942c))(0);
      (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x611c,uVar21);
      pcVar40 = *(code **)(puVar38 + 0x2b9978);
    }
  }
  else {
    iVar5 = (**(code **)(puVar38 + 0x2b9b80))(0x44,0,iVar4);
    iVar6 = (**(code **)(puVar38 + 0x2b99ac))(piVar22,*(int *)(puVar38 + 0x2b8dd0) + -0x6ad8);
    if (iVar6 == 0) {
      pdStack_4198 = (double *)0x0;
    }
    else {
      pdStack_4198 = (double *)(**(code **)(puVar38 + 0x2b982c))(iVar6,0,10);
    }
    if (piVar22[0xcdb] != -0x54535255) {
      uVar21 = 0x90;
      pcVar40 = *(code **)(puVar38 + 0x2b9af4);
      iVar4 = *(int *)(puVar38 + 0x2b8dd0) + -0x5ba4;
LAB_000f38e8:
      uVar36 = (*pcVar40)(*(int *)(puVar38 + 0x2b8dd4) + -0x3784,
                          *(int *)(puVar38 + 0x2b8dd0) + -0x6b00,uVar21,iVar4);
      return uVar36;
    }
    pcVar40 = *(code **)(puVar38 + 0x2b99f8);
    if (piVar22[0xcd4] != 0) {
      (**(code **)(puVar38 + 0x2b96cc))
                (0x8000,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,
                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x92,*(int *)(puVar38 + 0x2b8dd0) + -0x62ac,
                 piVar22 + 0xd0);
      pcVar40 = *(code **)(puVar38 + 0x2b99f8);
    }
    puVar12 = (undefined *)(*pcVar40)(0x41,0x78);
    if (puVar12 == (undefined *)0x0) {
      uVar21 = (**(code **)(puVar38 + 0x2b93d8))();
      puVar11 = (undefined4 *)(**(code **)(puVar38 + 0x2b9e9c))();
      uVar26 = (**(code **)(puVar38 + 0x2b98d8))(*puVar11);
      (**(code **)(puVar38 + 0x2b940c))
                (uVar21,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,
                 *(int *)(puVar38 + 0x2b8dd0) + -0x5bbc,0x96,700,
                 *(int *)(puVar38 + 0x2b8dcc) + 0x16f8,*(int *)(puVar38 + 0x2b8dcc) + 0x3e28,uVar26)
      ;
      (**(code **)(puVar38 + 0x2b9560))(uVar26);
      (**(code **)(puVar38 + 0x2b979c))(uVar21);
      (**(code **)(puVar38 + 0x2b923c))(uVar21);
      (**(code **)(puVar38 + 0x2b9dd8))();
      uVar36 = (**(code **)(puVar38 + 0x2b9b4c))(1);
      return uVar36;
    }
    (**(code **)(puVar38 + 0x2b9bc0))(puVar12,0,0x1e78);
    puVar13 = (undefined8 *)(puVar12 + 0x10);
    uVar45 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dcc) + 0x1ac0);
    uVar42 = *(undefined8 *)(*(int *)(puVar38 + 0x2b8dd0) + -0x5b60);
    do {
      while (iVar5 != 5) {
        puVar13[1] = uVar42;
        puVar13 = puVar13 + 0xf;
        if ((undefined8 *)(puVar12 + 0x1e88) == puVar13) goto LAB_000efcf0;
      }
      *puVar13 = uVar45;
      puVar13 = puVar13 + 0xf;
    } while ((undefined8 *)(puVar12 + 0x1e88) != puVar13);
LAB_000efcf0:
    if (0 < piVar22[7]) {
      iVar7 = 0;
      iVar6 = piVar22[6];
      uVar48 = (ulonglong)*(uint *)(*(int *)(puVar38 + 0x2b8dcc) + 0x3708);
      pcVar40 = *(code **)(puVar38 + 0x2b9c50);
      do {
        iVar8 = (*pcVar40)(piVar22,0,iVar7,iVar6,1,uVar26);
        if (iVar8 == 0) break;
        iVar6 = piVar22[6];
        iVar9 = 0;
        if (0 < iVar6) {
          iVar29 = piVar22[0xb0];
          piVar24 = (int *)piVar22[0xb4];
          iVar28 = piVar24[0x13];
          do {
            while ((iVar27 = iVar8 + iVar29 * 4, iVar28 != 0 &&
                   (*(float *)(iVar8 + piVar24[0x14] * 4) <= (float)uVar48))) {
              iVar9 = iVar9 + 1;
              iVar8 = iVar27;
              if (iVar6 == iVar9) {
                iVar8 = piVar22[7];
                goto LAB_000efe04;
              }
            }
            if (0 < iVar29) {
              pfVar23 = (float *)(iVar27 + iVar29 * -4);
              piVar16 = piVar24;
LAB_000efd9c:
              do {
                iVar8 = *piVar16;
                if (piVar24[iVar8 * 3 + 1] != 0) {
                  dVar46 = (double)*pfVar23;
                  if (iVar5 == 5) {
                    if (dVar46 < *(double *)(puVar12 + iVar8 * 0x78 + 0x10)) {
                      piVar16 = piVar16 + 3;
                      *(double *)(puVar12 + iVar8 * 0x78 + 0x10) = dVar46;
                      pfVar23 = pfVar23 + 1;
                      if (piVar24 + iVar29 * 3 == piVar16) break;
                      goto LAB_000efd9c;
                    }
                  }
                  else if (*(double *)(puVar12 + iVar8 * 0x78 + 0x18) < dVar46) {
                    *(double *)(puVar12 + iVar8 * 0x78 + 0x18) = dVar46;
                  }
                }
                piVar16 = piVar16 + 3;
                pfVar23 = pfVar23 + 1;
              } while (piVar24 + iVar29 * 3 != piVar16);
            }
            iVar9 = iVar9 + 1;
            iVar8 = iVar27;
          } while (iVar6 != iVar9);
        }
        iVar8 = piVar22[7];
LAB_000efe04:
        iVar7 = iVar7 + 1;
        pcVar40 = *(code **)(puVar38 + 0x2b9c50);
      } while (iVar7 < iVar8);
    }
    (**(code **)(puVar38 + 0x2b9a30))(puVar32,*(int *)(puVar38 + 0x2b8dd0) + -0x6ac8,iVar4);
    if (uVar36 < 0x22) {
                    /* WARNING: Could not recover jumptable at 0x000efe50. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar36 = (*(code *)(puVar38 +
                         *(int *)(*(int *)(puVar38 + 0x2b8dd0) + -0x60b0 + uVar36 * 4) + 0x2c0d9c))
                         ();
      return uVar36;
    }
    if (piVar22[0xb0] < 1) {
      iVar4 = piVar22[0xaf];
    }
    else {
      iVar4 = 0;
      iVar6 = *(int *)(puVar38 + 0x2b8dd0);
      do {
        FUN_000ef554(puVar32,piVar22,iVar4,iVar6 + -0x6ab0,iVar5,pdStack_4198,puVar12);
        iVar4 = iVar4 + 1;
      } while (iVar4 < piVar22[0xb0]);
      iVar4 = piVar22[0xaf];
    }
    if (iVar4 != 0) {
      FUN_000ef554(puVar32,piVar22,4,*(int *)(puVar38 + 0x2b8dd0) + 0x158,iVar5,pdStack_4198,puVar12
                  );
    }
    pcVar40 = *(code **)(puVar38 + 0x2b94ac);
  }
  (*pcVar40)(puVar12);
  iVar4 = (**(code **)(puVar38 + 0x2b9208))(puVar32);
  if (iStack_10c == *piVar10) {
    return (uint)(iVar4 == 0);
  }
  (**(code **)(puVar38 + 0x2b9550))();
LAB_000f38b4:
  uVar36 = (**(code **)(puVar38 + 0x2b9af4))
                     (*(int *)(puVar38 + 0x2b8dcc) + 0xdd0,*(int *)(puVar38 + 0x2b8dd0) + -0x6b00,
                      0x212,*(int *)(puVar38 + 0x2b8dd0) + -0x5b7c);
  return uVar36;
}

