
/* WARNING: Unknown calling convention */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

MagickBooleanType WriteCIPImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)

{
  byte bVar1;
  float fVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  int iVar7;
  PixelChannelMap *pPVar8;
  int iVar9;
  int iVar10;
  double dVar11;
  MagickBooleanType MVar12;
  char *component;
  size_t sVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  int unaff_EDI;
  int in_GS_OFFSET;
  bool bVar17;
  Quantum *local_2074;
  uint local_206c;
  uint local_2064;
  int local_2050;
  uint local_204c;
  int local_2048;
  uint local_2044;
  char buffer [4096];
  char basename [4096];
  
  __x86_get_pc_thunk_di();
  iVar7 = *(int *)(in_GS_OFFSET + 0x14);
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,
                   (char *)(unaff_EDI + 0xeccc7),image->filename);
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,
                  (char *)(unaff_EDI + 0x103101));
  }
  MVar12 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
  if (MVar12 != MagickFalse) {
    WriteBlobString(image,(char *)(unaff_EDI + 0x103008));
    component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception);
    if (component == (char *)0x0) {
      component = basename;
      GetPathComponent(image->filename,BasePath,component);
    }
    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component);
    WriteBlobString(image,buffer);
    dVar11 = (double)(image->page).x;
    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),
                       (int)((ulonglong)dVar11 >> 0x20));
    WriteBlobString(image,buffer);
    dVar11 = (double)(image->page).y;
    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),
                       (int)((ulonglong)dVar11 >> 0x20));
    WriteBlobString(image,buffer);
    dVar11 = (double)(image->columns + 1 & 0xfffffffe);
    FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),
                       (int)((ulonglong)dVar11 >> 0x20));
    WriteBlobString(image,buffer);
    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),
                       (int)((ulonglong)(double)image->rows >> 0x20));
    WriteBlobString(image,buffer);
    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a));
    WriteBlobString(image,buffer);
    WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac));
    TransformImageColorspace(image,sRGBColorspace,exception);
    if (0 < (int)image->rows) {
      local_204c = 0;
      local_2048 = 0;
      local_2050 = 0;
      do {
        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);
        if (local_2074 == (Quantum *)0x0) break;
        uVar16 = image->columns;
        if ((int)uVar16 < 4) {
          local_206c = 0;
        }
        else {
          sVar13 = image->number_channels;
          local_206c = 0;
          do {
            fVar2 = *(float *)(unaff_EDI + 0xe8281);
            pPVar8 = image->channel_map;
            iVar15 = pPVar8->offset;
            iVar9 = pPVar8[1].offset;
            iVar10 = pPVar8[2].offset;
            fVar3 = *(float *)(unaff_EDI + 0xe827d);
            fVar4 = *(float *)(unaff_EDI + 0xe8285);
            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);
            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);
            local_2044 = (uint)(longlong)
                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +
                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +
                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /
                                     fVar6);
            iVar14 = local_2044 << 6;
            local_2064 = (uint)(longlong)
                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +
                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +
                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /
                                     fVar6);
            local_2044 = (uint)(longlong)
                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +
                                      fVar3 * (float)local_2074[sVar13 + iVar9] +
                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);
            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),
                               (uint)(byte)((byte)(longlong)
                                                  ROUND((((float)local_2074[iVar10] * fVar4 +
                                                         (float)local_2074[iVar9] * fVar3 +
                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)
                                                        / fVar6) & 3 | (byte)iVar14) |
                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);
            WriteBlobString(image,buffer);
            sVar13 = image->number_channels;
            local_206c = local_206c + 4;
            local_2074 = local_2074 + sVar13;
            uVar16 = image->columns;
          } while ((int)local_206c < (int)(uVar16 - 3));
        }
        if ((uVar16 & 3) != 0) {
          if ((int)local_206c < (int)uVar16) {
            bVar1 = 0;
            do {
              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {
                pPVar8 = image->channel_map;
                sVar13 = image->number_channels;
                local_2044 = (uint)(longlong)
                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                           (float)local_2074[sVar13 + pPVar8[2].offset] +
                                          *(float *)(unaff_EDI + 0xe827d) *
                                          (float)local_2074[sVar13 + pPVar8[1].offset] +
                                          (float)local_2074[sVar13 + pPVar8->offset] *
                                          *(float *)(unaff_EDI + 0xe8281)) *
                                         *(float *)(unaff_EDI + 0xdf3f1)) /
                                         *(float *)(unaff_EDI + 0xd4fc1));
                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;
LAB_0020ae35:
                local_206c = local_206c + 1;
                if (local_206c == uVar16) goto LAB_0020aee2;
              }
              if (1 < iVar15) {
                if (iVar15 == 2) {
                  pPVar8 = image->channel_map;
                  sVar13 = image->number_channels;
                  local_2044 = (uint)(longlong)
                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                             (float)local_2074[sVar13 + pPVar8[2].offset] +
                                            *(float *)(unaff_EDI + 0xe827d) *
                                            (float)local_2074[sVar13 + pPVar8[1].offset] +
                                            (float)local_2074[sVar13 + pPVar8->offset] *
                                            *(float *)(unaff_EDI + 0xe8281)) *
                                           *(float *)(unaff_EDI + 0xdf3f1)) /
                                           *(float *)(unaff_EDI + 0xd4fc1));
                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;
                }
                else if (iVar15 == 3) {
                  pPVar8 = image->channel_map;
                  bVar1 = bVar1 | (byte)(longlong)
                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                                (float)local_2074[pPVar8[2].offset] +
                                               *(float *)(unaff_EDI + 0xe827d) *
                                               (float)local_2074[pPVar8[1].offset] +
                                               (float)local_2074[pPVar8->offset] *
                                               *(float *)(unaff_EDI + 0xe8281)) *
                                              *(float *)(unaff_EDI + 0xdf3f1)) /
                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;
                }
                goto LAB_0020ae35;
              }
              if (iVar15 != 0) goto LAB_0020ae35;
              pPVar8 = image->channel_map;
              local_206c = local_206c + 1;
              local_2044 = (uint)(longlong)
                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                         (float)local_2074[pPVar8[2].offset] +
                                        *(float *)(unaff_EDI + 0xe827d) *
                                        (float)local_2074[pPVar8[1].offset] +
                                        (float)local_2074[pPVar8->offset] *
                                        *(float *)(unaff_EDI + 0xe8281)) *
                                       *(float *)(unaff_EDI + 0xdf3f1)) /
                                       *(float *)(unaff_EDI + 0xd4fc1));
              bVar1 = bVar1 | (byte)(local_2044 << 6);
            } while (local_206c != uVar16);
LAB_0020aee2:
            uVar16 = ~(uint)bVar1;
          }
          else {
            uVar16 = 0xffffffff;
          }
          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);
          WriteBlobString(image,buffer);
        }
        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),
                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);
        if (MVar12 == MagickFalse) break;
        local_2050 = local_2050 + 1;
        bVar17 = 0xfffffffe < local_204c;
        local_204c = local_204c + 1;
        local_2048 = local_2048 + (uint)bVar17;
      } while (local_2050 < (int)image->rows);
    }
    WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3));
    WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc));
    CloseBlob(image);
    MVar12 = MagickTrue;
  }
  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return MVar12;
}



int FUN_0020a8e0(int param_1,int param_2,int param_3)

{
  int iVar1;
  byte bVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  undefined1 *puVar11;
  int iVar12;
  int iVar13;
  uint uVar14;
  int unaff_EDI;
  int in_GS_OFFSET;
  bool bVar15;
  undefined1 *puVar16;
  int local_2074;
  uint local_206c;
  uint local_2064;
  int local_2050;
  uint local_204c;
  int local_2048;
  uint local_2044;
  undefined1 local_2020 [4096];
  undefined1 local_1020 [4096];
  int local_20;
  
  FUN_0004f293();
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_2 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_2 + 0x3328) != 0) {
    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,
                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_3 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,
                  (char *)(unaff_EDI + 0x103101));
  }
  iVar10 = OpenBlob();
  if (iVar10 != 0) {
    WriteBlobString();
    puVar11 = (undefined1 *)GetImageProperty();
    if (puVar11 == (undefined1 *)0x0) {
      puVar11 = local_1020;
      GetPathComponent();
    }
    iVar10 = unaff_EDI + 0x10301d;
    FormatLocaleString();
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),
                       puVar16,iVar10,puVar11);
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),
                       puVar16);
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,
                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),
                       puVar16);
    WriteBlobString();
    FormatLocaleString();
    WriteBlobString();
    WriteBlobString();
    iVar10 = param_3;
    TransformImageColorspace();
    if (0 < *(int *)(param_2 + 0x1c)) {
      local_204c = 0;
      local_2048 = 0;
      local_2050 = 0;
      do {
        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3
                                      ,iVar10);
        if (local_2074 == 0) break;
        uVar14 = *(uint *)(param_2 + 0x18);
        if ((int)uVar14 < 4) {
          local_206c = 0;
        }
        else {
          iVar13 = *(int *)(param_2 + 0x298);
          local_206c = 0;
          do {
            fVar3 = *(float *)(unaff_EDI + 0xe8281);
            iVar10 = local_2074 + iVar13 * 0x18;
            iVar8 = *(int *)(param_2 + 0x2a8);
            iVar1 = iVar10 + iVar13 * -8;
            iVar12 = iVar13 * -8 + iVar1;
            iVar13 = *(int *)(iVar8 + 8);
            iVar9 = *(int *)(iVar8 + 0x14);
            iVar8 = *(int *)(iVar8 + 0x20);
            fVar4 = *(float *)(unaff_EDI + 0xe827d);
            fVar5 = *(float *)(unaff_EDI + 0xe8285);
            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);
            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);
            local_2044 = (uint)(longlong)
                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +
                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +
                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /
                                     fVar7);
            iVar10 = local_2044 << 6;
            local_2064 = (uint)(longlong)
                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +
                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +
                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /
                                     fVar7);
            local_2044 = (uint)(longlong)
                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +
                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +
                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /
                                     fVar7);
            puVar11 = (undefined1 *)
                      ((uint)(byte)((byte)(longlong)
                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5
                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *
                                                   fVar4 + fVar3 * (float)*(double *)
                                                                           (local_2074 + iVar13 * 8)
                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |
                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);
            iVar10 = unaff_EDI + 0xff179;
            FormatLocaleString();
            WriteBlobString();
            iVar13 = *(int *)(param_2 + 0x298);
            local_206c = local_206c + 4;
            local_2074 = local_2074 + iVar13 * 8;
            uVar14 = *(uint *)(param_2 + 0x18);
          } while ((int)local_206c < (int)(uVar14 - 3));
        }
        if ((uVar14 & 3) != 0) {
          if ((int)local_206c < (int)uVar14) {
            bVar2 = 0;
            do {
              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {
                iVar13 = *(int *)(param_2 + 0x2a8);
                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;
                local_2044 = (uint)(longlong)
                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)
                                          + *(float *)(unaff_EDI + 0xe827d) *
                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)
                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)
                                              * *(float *)(unaff_EDI + 0xe8281)) *
                                         *(float *)(unaff_EDI + 0xdf3f1)) /
                                         *(float *)(unaff_EDI + 0xd4fc1));
                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;
LAB_0020ae35:
                local_206c = local_206c + 1;
                if (local_206c == uVar14) goto LAB_0020aee2;
              }
              if (1 < iVar10) {
                if (iVar10 == 2) {
                  iVar13 = *(int *)(param_2 + 0x2a8);
                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;
                  local_2044 = (uint)(longlong)
                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                             (float)*(double *)
                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +
                                            *(float *)(unaff_EDI + 0xe827d) *
                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)
                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)
                                              * *(float *)(unaff_EDI + 0xe8281)) *
                                           *(float *)(unaff_EDI + 0xdf3f1)) /
                                           *(float *)(unaff_EDI + 0xd4fc1));
                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;
                }
                else if (iVar10 == 3) {
                  iVar10 = *(int *)(param_2 + 0x2a8);
                  bVar2 = bVar2 | (byte)(longlong)
                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                                (float)*(double *)
                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +
                                               *(float *)(unaff_EDI + 0xe827d) *
                                               (float)*(double *)
                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +
                                               (float)*(double *)
                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *
                                               *(float *)(unaff_EDI + 0xe8281)) *
                                              *(float *)(unaff_EDI + 0xdf3f1)) /
                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;
                }
                goto LAB_0020ae35;
              }
              if (iVar10 != 0) goto LAB_0020ae35;
              iVar10 = *(int *)(param_2 + 0x2a8);
              local_206c = local_206c + 1;
              local_2044 = (uint)(longlong)
                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                         (float)*(double *)
                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +
                                        *(float *)(unaff_EDI + 0xe827d) *
                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)
                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)
                                          * *(float *)(unaff_EDI + 0xe8281)) *
                                       *(float *)(unaff_EDI + 0xdf3f1)) /
                                       *(float *)(unaff_EDI + 0xd4fc1));
              bVar2 = bVar2 | (byte)(local_2044 << 6);
            } while (local_206c != uVar14);
LAB_0020aee2:
            puVar11 = (undefined1 *)~(uint)bVar2;
          }
          else {
            puVar11 = (undefined1 *)0xffffffff;
          }
          iVar10 = unaff_EDI + 0xff179;
          FormatLocaleString();
          WriteBlobString();
        }
        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,
                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);
        if (iVar13 == 0) break;
        local_2050 = local_2050 + 1;
        bVar15 = 0xfffffffe < local_204c;
        local_204c = local_204c + 1;
        local_2048 = local_2048 + (uint)bVar15;
      } while (local_2050 < *(int *)(param_2 + 0x1c));
    }
    WriteBlobString();
    WriteBlobString();
    CloseBlob();
    iVar10 = 1;
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_002decd0();
  }
  return iVar10;
}


PUSH EBP
PUSH EDI
CALL 0x0004f293
ADD EDI,0x213719
PUSH ESI
PUSH EBX
SUB ESP,0x206c
MOV EAX,dword ptr [ESP + 0x2088]
MOV EBP,dword ptr [ESP + 0x2080]
MOV ESI,dword ptr [ESP + 0x2084]
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x205c],EAX
XOR EAX,EAX
TEST EBP,EBP
JZ 0x0020b12e
CMP dword ptr [EBP + 0x31f4],0xabacadab
JNZ 0x0020b10d
TEST ESI,ESI
JZ 0x0020b0ec
CMP dword ptr [ESI + 0x3344],0xabacadab
JNZ 0x0020b089
MOV EAX,dword ptr [ESI + 0x3328]
TEST EAX,EAX
JNZ 0x0020b020
MOV EBX,dword ptr [ESP + 0x40]
TEST EBX,EBX
JZ 0x0020b0cb
MOV EAX,dword ptr [ESP + 0x40]
CMP dword ptr [EAX + 0x1c],0xabacadab
JNZ 0x0020b0aa
PUSH dword ptr [ESP + 0x40]
MOV EBX,EDI
PUSH 0x4
PUSH ESI
PUSH EBP
CALL 0x00032230
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0020a9b0
MOV EDI,dword ptr [ESP + 0x205c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x0020b084
ADD ESP,0x206c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EDI + 0xffeef8ef]
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x00031550
LEA EAX,[EDI + 0xffee0f69]
ADD ESP,0xc
PUSH dword ptr [ESP + 0x44]
PUSH EAX
PUSH ESI
CALL 0x00031bb0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0020b062
PUSH EAX
LEA EAX,[EDI + 0xffeef904]
PUSH EAX
PUSH 0x1000
LEA EAX,[ESP + 0x68]
MOV dword ptr [ESP + 0x30],EAX
PUSH EAX
CALL 0x000334e0
ADD ESP,0x10
MOV EBX,EDI
SUB ESP,0x8
MOV EBP,dword ptr [ESP + 0x2c]
PUSH EBP
PUSH ESI
CALL 0x00031550
SUB ESP,0x4
FILD dword ptr [ESI + 0x208]
LEA EAX,[EDI + 0xffeef917]
FSTP qword ptr [ESP]
PUSH EAX
PUSH 0x1000
PUSH EBP
CALL 0x000334e0
ADD ESP,0x18
PUSH EBP
PUSH ESI
CALL 0x00031550
SUB ESP,0x4
FILD dword ptr [ESI + 0x20c]
LEA EAX,[EDI + 0xffeef935]
FSTP qword ptr [ESP]
PUSH EAX
PUSH 0x1000
PUSH EBP
CALL 0x000334e0
ADD ESP,0x18
PUSH EBP
PUSH ESI
CALL 0x00031550
MOV EAX,dword ptr [ESI + 0x18]
SUB ESP,0x4
MOV dword ptr [ESP + 0x20],0x0
ADD EAX,0x1
AND EAX,0xfffffffe
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EDI + 0xffeef953]
FILD qword ptr [ESP + 0x1c]
FSTP qword ptr [ESP]
PUSH EAX
PUSH 0x1000
PUSH EBP
CALL 0x000334e0
ADD ESP,0x18
PUSH EBP
PUSH ESI
CALL 0x00031550
MOV EAX,dword ptr [ESI + 0x1c]
SUB ESP,0x4
XOR EDX,EDX
MOV dword ptr [ESP + 0x20],EDX
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EDI + 0xffeef969]
FILD qword ptr [ESP + 0x1c]
FSTP qword ptr [ESP]
PUSH EAX
PUSH 0x1000
PUSH EBP
CALL 0x000334e0
ADD ESP,0x18
PUSH EBP
PUSH ESI
CALL 0x00031550
LEA EAX,[EDI + 0xffeef981]
ADD ESP,0xc
PUSH EAX
PUSH 0x1000
PUSH EBP
CALL 0x000334e0
POP ECX
POP EAX
PUSH EBP
PUSH ESI
CALL 0x00031550
POP EAX
LEA EAX,[EDI + 0xffeef993]
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00031550
ADD ESP,0xc
PUSH dword ptr [ESP + 0x44]
PUSH 0x17
PUSH ESI
CALL 0x00032530
MOV ECX,dword ptr [ESI + 0x1c]
ADD ESP,0x10
TEST ECX,ECX
JLE 0x0020ad59
LEA EAX,[EDI + 0xffeeba60]
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x14],ESI
NOP
LEA ESI,[ESI]
SUB ESP,0x8
MOV EBX,EDI
PUSH dword ptr [ESP + 0x48]
PUSH 0x1
MOV ESI,dword ptr [ESP + 0x24]
PUSH dword ptr [ESI + 0x18]
PUSH dword ptr [ESP + 0x40]
PUSH 0x0
PUSH ESI
CALL 0x00030e70
ADD ESP,0x20
MOV EBP,EAX
MOV EDX,EAX
TEST EAX,EAX
JZ 0x0020ad55
MOV ECX,dword ptr [ESI + 0x18]
CMP ECX,0x3
JLE 0x0020b010
MOV EAX,dword ptr [ESI + 0x298]
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x8],EBP
NOP
LEA ESI,[ESI]
MOV EBX,dword ptr [ESP + 0x8]
LEA EDX,[EAX + EAX*0x2]
NEG EAX
MOV ESI,dword ptr [ESP + 0x14]
SHL EAX,0x3
FLD dword ptr [EDI + 0xffed4b68]
LEA EDX,[EBX + EDX*0x8]
MOV EBX,dword ptr [ESI + 0x2a8]
LEA EBP,[EDX + EAX*0x1]
ADD EAX,EBP
MOV dword ptr [ESP + 0x20],EAX
MOV ECX,dword ptr [EBX + 0x8]
MOV ESI,dword ptr [EBX + 0x14]
MOV EBX,dword ptr [EBX + 0x20]
FLD qword ptr [EDX + ECX*0x8]
FMUL ST1
FLD dword ptr [EDI + 0xffed4b64]
FLD qword ptr [EDX + ESI*0x8]
FMUL ST1
FADDP ST2,ST0
FLD dword ptr [EDI + 0xffed4b6c]
FLD qword ptr [EDX + EBX*0x8]
FMUL ST1
FNSTCW word ptr [ESP + 0x46]
MOVZX EAX,word ptr [ESP + 0x46]
FADDP ST3,ST0
FLD dword ptr [EDI + 0xffecbcd8]
OR AH,0xc
FMUL ST3
MOV word ptr [ESP + 0x44],AX
FLD dword ptr [EDI + 0xffec18a8]
FDIV ST4,ST0
FXCH ST4
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x38]
FLDCW word ptr [ESP + 0x46]
MOV EAX,dword ptr [ESP + 0x38]
FLD ST4
SHL EAX,0x6
MOV byte ptr [ESP + 0x18],AL
MOV EAX,dword ptr [ESP + 0x8]
FMUL qword ptr [EAX + ECX*0x8]
FLD qword ptr [EAX + ESI*0x8]
FMUL ST4
FADDP
FLD qword ptr [EAX + EBX*0x8]
FMUL ST3
FADDP
FMUL ST1
FDIV ST0,ST4
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x38]
FLDCW word ptr [ESP + 0x46]
MOV EAX,dword ptr [ESP + 0x38]
AND EAX,0x3
OR AL,byte ptr [ESP + 0x18]
FLD qword ptr [EBP + ECX*0x8]
FMUL ST5
FLD qword ptr [EBP + ESI*0x8]
FMUL ST4
FADDP
FLD qword ptr [EBP + EBX*0x8]
FMUL ST3
FADDP
FMUL ST1
FDIV ST0,ST4
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x18]
FLDCW word ptr [ESP + 0x46]
FXCH ST4
MOV EDX,dword ptr [ESP + 0x18]
SHL EDX,0x4
AND EDX,0x30
OR EAX,EDX
MOV EDX,dword ptr [ESP + 0x20]
FMUL qword ptr [EDX + ECX*0x8]
FXCH ST2
FMUL qword ptr [EDX + ESI*0x8]
FADDP ST2,ST0
FMUL qword ptr [EDX + EBX*0x8]
MOV EBX,EDI
FADDP
FMULP ST2
FDIVP
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x38]
FLDCW word ptr [ESP + 0x46]
MOV ECX,dword ptr [ESP + 0x38]
SHL ECX,0x2
AND ECX,0xc
OR EAX,ECX
MOVZX EAX,AL
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
PUSH 0x1000
MOV ESI,dword ptr [ESP + 0x30]
PUSH ESI
CALL 0x000334e0
POP EAX
POP EDX
PUSH ESI
MOV ESI,dword ptr [ESP + 0x20]
PUSH ESI
CALL 0x00031550
MOV EBX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESI + 0x298]
ADD dword ptr [ESP + 0x20],0x4
LEA ECX,[EBX + EAX*0x8]
MOV EBX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x18],ECX
MOV ECX,dword ptr [ESI + 0x18]
ADD ESP,0x10
LEA EDX,[ECX + -0x3]
CMP EDX,EBX
JG 0x0020ab90
MOV EDX,dword ptr [ESP + 0x8]
TEST CL,0x3
JNZ 0x0020ad90
SUB ESP,0x8
XOR EDX,EDX
MOV EBX,EDI
MOV ESI,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESI + 0x1c]
PUSH EDX
PUSH EAX
LEA EAX,[EDI + 0xffeee986]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x44]
PUSH EAX
PUSH ESI
CALL 0x00033840
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0020ad55
ADD dword ptr [ESP + 0x2c],0x1
ADD dword ptr [ESP + 0x30],0x1
MOV EAX,dword ptr [ESP + 0x2c]
ADC dword ptr [ESP + 0x34],0x0
CMP dword ptr [ESI + 0x1c],EAX
JG 0x0020ab40
MOV ESI,dword ptr [ESP + 0x14]
LEA EAX,[EDI + 0xffeef99a]
SUB ESP,0x8
MOV EBX,EDI
PUSH EAX
PUSH ESI
CALL 0x00031550
POP EAX
LEA EAX,[EDI + 0xffeef9a3]
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00031550
MOV dword ptr [ESP],ESI
CALL 0x000311d0
ADD ESP,0x10
MOV EAX,0x1
JMP 0x0020a98e
MOV EAX,dword ptr [ESP + 0x10]
CMP EAX,ECX
JGE 0x0020b058
XOR EBX,EBX
FLD dword ptr [EDI + 0xffed4b68]
MOV dword ptr [ESP + 0x8],ECX
MOV EBP,EDX
MOV byte ptr [ESP + 0x10],BL
MOV ESI,dword ptr [ESP + 0x14]
JMP 0x0020ae42
CMP ECX,0x2
JZ 0x0020af90
CMP ECX,0x3
JNZ 0x0020ae35
MOV ECX,dword ptr [ESI + 0x2a8]
FLD dword ptr [EDI + 0xffed4b68]
MOV EBX,dword ptr [ECX + 0x8]
FLD qword ptr [EBP + EBX*0x8]
FMULP
MOV EBX,dword ptr [ECX + 0x14]
FLD dword ptr [EDI + 0xffed4b64]
MOV ECX,dword ptr [ECX + 0x20]
FMUL qword ptr [EBP + EBX*0x8]
FADDP
FLD dword ptr [EDI + 0xffed4b6c]
FMUL qword ptr [EBP + ECX*0x8]
FNSTCW word ptr [ESP + 0x46]
MOVZX ECX,word ptr [ESP + 0x46]
FADDP
FMUL dword ptr [EDI + 0xffecbcd8]
OR CH,0xc
MOV word ptr [ESP + 0x44],CX
FDIV dword ptr [EDI + 0xffec18a8]
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x38]
FLDCW word ptr [ESP + 0x46]
MOV ECX,dword ptr [ESP + 0x38]
AND ECX,0x3
OR byte ptr [ESP + 0x10],CL
ADD EAX,0x1
CMP EAX,dword ptr [ESP + 0x8]
JZ 0x0020aee0
MOV EBX,EAX
SAR EBX,0x1f
SHR EBX,0x1e
LEA ECX,[EAX + EBX*0x1]
AND ECX,0x3
SUB ECX,EBX
CMP ECX,0x1
JZ 0x0020af18
JG 0x0020adc0
TEST ECX,ECX
JNZ 0x0020ae35
MOV ECX,dword ptr [ESI + 0x2a8]
ADD EAX,0x1
FLD dword ptr [EDI + 0xffed4b68]
MOV EBX,dword ptr [ECX + 0x8]
FLD qword ptr [EBP + EBX*0x8]
FMULP
MOV EBX,dword ptr [ECX + 0x14]
FLD dword ptr [EDI + 0xffed4b64]
MOV ECX,dword ptr [ECX + 0x20]
FMUL qword ptr [EBP + EBX*0x8]
FADDP
FLD dword ptr [EDI + 0xffed4b6c]
FMUL qword ptr [EBP + ECX*0x8]
FNSTCW word ptr [ESP + 0x46]
MOVZX ECX,word ptr [ESP + 0x46]
FADDP
FMUL dword ptr [EDI + 0xffecbcd8]
OR CH,0xc
MOV word ptr [ESP + 0x44],CX
FDIV dword ptr [EDI + 0xffec18a8]
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x38]
FLDCW word ptr [ESP + 0x46]
MOV ECX,dword ptr [ESP + 0x38]
SHL ECX,0x6
OR byte ptr [ESP + 0x10],CL
CMP EAX,dword ptr [ESP + 0x8]
JNZ 0x0020ae42
FSTP ST0
JMP 0x0020aee2
FSTP ST0
MOVZX ESI,byte ptr [ESP + 0x10]
NOT ESI
PUSH ESI
MOV EBX,EDI
PUSH dword ptr [ESP + 0x2c]
PUSH 0x1000
MOV ESI,dword ptr [ESP + 0x30]
PUSH ESI
CALL 0x000334e0
POP ECX
POP EBP
PUSH ESI
PUSH dword ptr [ESP + 0x20]
CALL 0x00031550
ADD ESP,0x10
JMP 0x0020ad0d
MOV EBX,dword ptr [ESI + 0x2a8]
FLD ST0
MOV ECX,dword ptr [ESI + 0x298]
MOV EDX,dword ptr [EBX + 0x8]
LEA ECX,[EBP + ECX*0x8]
FLD qword ptr [ECX + EDX*0x8]
FMULP
MOV EDX,dword ptr [EBX + 0x14]
FLD dword ptr [EDI + 0xffed4b64]
MOV EBX,dword ptr [EBX + 0x20]
FMUL qword ptr [ECX + EDX*0x8]
FADDP
FLD dword ptr [EDI + 0xffed4b6c]
FMUL qword ptr [ECX + EBX*0x8]
FNSTCW word ptr [ESP + 0x46]
MOVZX ECX,word ptr [ESP + 0x46]
FADDP
FMUL dword ptr [EDI + 0xffecbcd8]
OR CH,0xc
MOV word ptr [ESP + 0x44],CX
FDIV dword ptr [EDI + 0xffec18a8]
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x38]
FLDCW word ptr [ESP + 0x46]
MOV ECX,dword ptr [ESP + 0x38]
SHL ECX,0x4
AND ECX,0x30
OR byte ptr [ESP + 0x10],CL
JMP 0x0020ae35
MOV EBX,dword ptr [ESI + 0x2a8]
MOV ECX,dword ptr [ESI + 0x298]
FLD dword ptr [EDI + 0xffed4b68]
MOV EDX,dword ptr [EBX + 0x8]
LEA ECX,[EBP + ECX*0x8]
FLD qword ptr [ECX + EDX*0x8]
FMULP
MOV EDX,dword ptr [EBX + 0x14]
FLD dword ptr [EDI + 0xffed4b64]
MOV EBX,dword ptr [EBX + 0x20]
FMUL qword ptr [ECX + EDX*0x8]
FADDP
FLD dword ptr [EDI + 0xffed4b6c]
FMUL qword ptr [ECX + EBX*0x8]
FNSTCW word ptr [ESP + 0x46]
MOVZX ECX,word ptr [ESP + 0x46]
FADDP
FMUL dword ptr [EDI + 0xffecbcd8]
OR CH,0xc
MOV word ptr [ESP + 0x44],CX
FDIV dword ptr [EDI + 0xffec18a8]
FLDCW word ptr [ESP + 0x44]
FISTP qword ptr [ESP + 0x38]
FLDCW word ptr [ESP + 0x46]
MOV ECX,dword ptr [ESP + 0x38]
SHL ECX,0x2
AND ECX,0xc
OR byte ptr [ESP + 0x10],CL
JMP 0x0020ae35
MOV dword ptr [ESP + 0x10],0x0
JMP 0x0020ad04
LEA EAX,[ESI + 0x318]
SUB ESP,0x8
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffed95ae]
PUSH EAX
LEA EAX,[EDI + 0xffeef9d8]
PUSH 0xc1
PUSH EAX
LEA EAX,[EDI + 0xffeef8e2]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x0020a95b
MOV ESI,0xffffffff
JMP 0x0020aee9
LEA EAX,[ESI + 0x318]
SUB ESP,0x4
LEA EBP,[ESP + 0x1060]
PUSH EBP
PUSH 0x5
PUSH EAX
CALL 0x00033270
ADD ESP,0x10
PUSH EBP
JMP 0x0020a9e0
CALL 0x002decd0
LEA EAX,[EDI + 0xffeef9e8]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffeef8e2]
PUSH 0xbf
PUSH EAX
LEA EAX,[EDI + 0xffecc4b8]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xffeef9e8]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffeef8e2]
PUSH 0xc3
PUSH EAX
LEA EAX,[EDI + 0xffec29d4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xffeef9e8]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffeef8e2]
PUSH 0xc2
PUSH EAX
LEA EAX,[EDI + 0xffec1be4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xffeef9e8]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffeef8e2]
PUSH 0xbe
PUSH EAX
LEA EAX,[EDI + 0xffed9cf4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xffeef9e8]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffeef8e2]
PUSH 0xbd
PUSH EAX
LEA EAX,[EDI + 0xffec0d48]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EDI + 0xffeef9e8]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffeef8e2]
PUSH 0xbc
PUSH EAX
LEA EAX,[EDI + 0xffec0d20]
PUSH EAX
CALL 0x000313d0
(translation_unit "int FUN_0020a8e0(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }\n  return iVar10;\n}\n\n" (function_definition "int FUN_0020a8e0(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }\n  return iVar10;\n}" primitive_type (function_declarator "FUN_0020a8e0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }\n  return iVar10;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "float fVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int local_2074;" primitive_type identifier ;) (declaration "uint local_206c;" type_identifier identifier ;) (declaration "uint local_2064;" type_identifier identifier ;) (declaration "int local_2050;" primitive_type identifier ;) (declaration "uint local_204c;" type_identifier identifier ;) (declaration "int local_2048;" primitive_type identifier ;) (declaration "uint local_2044;" type_identifier identifier ;) (declaration "undefined1 local_2020 [4096];" type_identifier (array_declarator "local_2020 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_0004f293();" (call_expression "FUN_0004f293()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd4439)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4439)" ( (binary_expression "unaff_EDI + 0xd4439" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" * (cast_expression "(int *)(param_1 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f4)" ( (binary_expression "param_1 + 0x31f4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd4461)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4461)" ( (binary_expression "unaff_EDI + 0xd4461" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xed40d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xed40d)" ( (binary_expression "unaff_EDI + 0xed40d" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x3344)" * (cast_expression "(int *)(param_2 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3344)" ( (binary_expression "param_2 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xdfbd1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdfbd1)" ( (binary_expression "unaff_EDI + 0xdfbd1" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_2 + 0x3328) != 0" (pointer_expression "*(int *)(param_2 + 0x3328)" * (cast_expression "(int *)(param_2 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3328)" ( (binary_expression "param_2 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);" (call_expression "LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318)" identifier (argument_list "(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318)" ( number_literal , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , (binary_expression "unaff_EDI + 0x1030f1" identifier + number_literal) , number_literal , (binary_expression "&UNK_000eccc7 + unaff_EDI" (pointer_expression "&UNK_000eccc7" & identifier) + identifier) , (binary_expression "param_2 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd52fd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd52fd)" ( (binary_expression "unaff_EDI + 0xd52fd" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_3 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd60ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd60ed)" ( (binary_expression "unaff_EDI + 0xd60ed" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (expression_statement "iVar10 = OpenBlob();" (assignment_expression "iVar10 = OpenBlob()" identifier = (call_expression "OpenBlob()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }" { (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar11 = (undefined1 *)GetImageProperty();" (assignment_expression "puVar11 = (undefined1 *)GetImageProperty()" identifier = (cast_expression "(undefined1 *)GetImageProperty()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageProperty()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar11 = local_1020;\n      GetPathComponent();\n    }" { (expression_statement "puVar11 = local_1020;" (assignment_expression "puVar11 = local_1020" identifier = identifier) ;) (expression_statement "GetPathComponent();" (call_expression "GetPathComponent()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar10 = unaff_EDI + 0x10301d;" (assignment_expression "iVar10 = unaff_EDI + 0x10301d" identifier = (binary_expression "unaff_EDI + 0x10301d" identifier + number_literal)) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11)" identifier (argument_list "(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11)" ( identifier , number_literal , (binary_expression "unaff_EDI + 0x103030" identifier + number_literal) , (cast_expression "(double)*(int *)(param_2 + 0x208)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_2 + 0x208)" * (cast_expression "(int *)(param_2 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x208)" ( (binary_expression "param_2 + 0x208" identifier + number_literal) ))))) , identifier , identifier , identifier ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16)" identifier (argument_list "(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16)" ( identifier , number_literal , (binary_expression "unaff_EDI + 0x10304e" identifier + number_literal) , (cast_expression "(double)*(int *)(param_2 + 0x20c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_2 + 0x20c)" * (cast_expression "(int *)(param_2 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20c)" ( (binary_expression "param_2 + 0x20c" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16)" identifier (argument_list "(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16)" ( identifier , number_literal , (binary_expression "&UNK_0010306c + unaff_EDI" (pointer_expression "&UNK_0010306c" & identifier) + identifier) , (cast_expression "(double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe)" ( (binary_expression "*(int *)(param_2 + 0x18) + 1U & 0xfffffffe" (binary_expression "*(int *)(param_2 + 0x18) + 1U" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) + number_literal) & number_literal) ))) , identifier ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16)" identifier (argument_list "(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16)" ( identifier , number_literal , (binary_expression "unaff_EDI + 0x103082" identifier + number_literal) , (cast_expression "(double)*(uint *)(param_2 + 0x1c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(uint *)(param_2 + 0x1c)" * (cast_expression "(uint *)(param_2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = param_3;" (assignment_expression "iVar10 = param_3" identifier = identifier) ;) (expression_statement "TransformImageColorspace();" (call_expression "TransformImageColorspace()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }" if (parenthesized_expression "(0 < *(int *)(param_2 + 0x1c))" ( (binary_expression "0 < *(int *)(param_2 + 0x1c)" number_literal < (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }" { (expression_statement "local_204c = 0;" (assignment_expression "local_204c = 0" identifier = number_literal) ;) (expression_statement "local_2048 = 0;" (assignment_expression "local_2048 = 0" identifier = number_literal) ;) (expression_statement "local_2050 = 0;" (assignment_expression "local_2050 = 0" identifier = number_literal) ;) (do_statement "do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));" do (compound_statement "{\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      }" { (expression_statement "local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);" (assignment_expression "local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" identifier (argument_list "(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (local_2074 == 0) break;" if (parenthesized_expression "(local_2074 == 0)" ( (binary_expression "local_2074 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar14 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" if (parenthesized_expression "((int)uVar14 < 4)" ( (binary_expression "(int)uVar14 < 4" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_206c = 0;\n        }" { (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" else (compound_statement "{\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" { (expression_statement "iVar13 = *(int *)(param_2 + 0x298);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x298)" identifier = (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" identifier = number_literal) ;) (do_statement "do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));" do (compound_statement "{\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          }" { (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xe8281);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xe8281)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = local_2074 + iVar13 * 0x18;" (assignment_expression "iVar10 = local_2074 + iVar13 * 0x18" identifier = (binary_expression "local_2074 + iVar13 * 0x18" identifier + (binary_expression "iVar13 * 0x18" identifier * number_literal))) ;) (expression_statement "iVar8 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = iVar10 + iVar13 * -8;" (assignment_expression "iVar1 = iVar10 + iVar13 * -8" identifier = (binary_expression "iVar10 + iVar13 * -8" identifier + (binary_expression "iVar13 * -8" identifier * number_literal))) ;) (expression_statement "iVar12 = iVar13 * -8 + iVar1;" (assignment_expression "iVar12 = iVar13 * -8 + iVar1" identifier = (binary_expression "iVar13 * -8 + iVar1" (binary_expression "iVar13 * -8" identifier * number_literal) + identifier)) ;) (expression_statement "iVar13 = *(int *)(iVar8 + 8);" (assignment_expression "iVar13 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar8 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar8 + 0x14)" identifier = (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x20);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x20)" identifier = (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "fVar4 = *(float *)(unaff_EDI + 0xe827d);" (assignment_expression "fVar4 = *(float *)(unaff_EDI + 0xe827d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) ))))) ;) (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xe8285);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xe8285)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) ))))) ;) (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xdf3f1);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xdf3f1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) ;) (expression_statement "fVar7 = *(float *)(unaff_EDI + 0xd4fc1);" (assignment_expression "fVar7 = *(float *)(unaff_EDI + 0xd4fc1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier (argument_list "((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (binary_expression "(((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7" (parenthesized_expression "(((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6)" ( (binary_expression "((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6" (parenthesized_expression "((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3)" ( (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3" (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4" (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(iVar10 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + iVar8 * 8)" * (cast_expression "(double *)(iVar10 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar8 * 8)" ( (binary_expression "iVar10 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) * identifier) + (binary_expression "(float)*(double *)(iVar10 + iVar9 * 8) * fVar4" (cast_expression "(float)*(double *)(iVar10 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + iVar9 * 8)" * (cast_expression "(double *)(iVar10 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 8)" ( (binary_expression "iVar10 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))) * identifier)) + (binary_expression "(float)*(double *)(iVar10 + iVar13 * 8) * fVar3" (cast_expression "(float)*(double *)(iVar10 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + iVar13 * 8)" * (cast_expression "(double *)(iVar10 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar13 * 8)" ( (binary_expression "iVar10 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))) * identifier)) )) * identifier) )) / identifier) )))))) ;) (expression_statement "iVar10 = local_2044 << 6;" (assignment_expression "iVar10 = local_2044 << 6" identifier = (binary_expression "local_2044 << 6" identifier << number_literal)) ;) (expression_statement "local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier (argument_list "((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (binary_expression "(((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7" (parenthesized_expression "(((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6)" ( (binary_expression "((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6" (parenthesized_expression "((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3)" ( (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3" (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4" (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(iVar1 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar1 + iVar8 * 8)" * (cast_expression "(double *)(iVar1 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar8 * 8)" ( (binary_expression "iVar1 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) * identifier) + (binary_expression "(float)*(double *)(iVar1 + iVar9 * 8) * fVar4" (cast_expression "(float)*(double *)(iVar1 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar1 + iVar9 * 8)" * (cast_expression "(double *)(iVar1 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar9 * 8)" ( (binary_expression "iVar1 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))) * identifier)) + (binary_expression "(float)*(double *)(iVar1 + iVar13 * 8) * fVar3" (cast_expression "(float)*(double *)(iVar1 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar1 + iVar13 * 8)" * (cast_expression "(double *)(iVar1 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar13 * 8)" ( (binary_expression "iVar1 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))) * identifier)) )) * identifier) )) / identifier) )))))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" identifier (argument_list "(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" ( (binary_expression "((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7" (parenthesized_expression "((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6)" ( (binary_expression "(fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6" (parenthesized_expression "(fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8))" ( (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)" (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8)" (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8)" identifier * (cast_expression "(float)*(double *)(iVar12 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar12 + iVar8 * 8)" * (cast_expression "(double *)(iVar12 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar8 * 8)" ( (binary_expression "iVar12 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) )))))) + (binary_expression "fVar4 * (float)*(double *)(iVar12 + iVar9 * 8)" identifier * (cast_expression "(float)*(double *)(iVar12 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar12 + iVar9 * 8)" * (cast_expression "(double *)(iVar12 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar9 * 8)" ( (binary_expression "iVar12 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))))) + (binary_expression "fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)" identifier * (cast_expression "(float)*(double *)(iVar12 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar12 + iVar13 * 8)" * (cast_expression "(double *)(iVar12 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar13 * 8)" ( (binary_expression "iVar12 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))))) )) * identifier) )) / identifier) )))))) ;) (expression_statement "puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);" (assignment_expression "puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" identifier = (cast_expression "(undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" ( (binary_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2" (binary_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4" (call_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10)" ( (binary_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10" (binary_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3" (cast_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" identifier (argument_list "((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" ( (binary_expression "(((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7" (parenthesized_expression "(((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6)" ( (binary_expression "((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6" (parenthesized_expression "((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 )" ( (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4" (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(local_2074 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + iVar8 * 8)" * (cast_expression "(double *)(local_2074 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + iVar8 * 8)" ( (binary_expression "local_2074 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) * identifier) + (binary_expression "(float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4" (cast_expression "(float)*(double *)(local_2074 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + iVar9 * 8)" * (cast_expression "(double *)(local_2074 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + iVar9 * 8)" ( (binary_expression "local_2074 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))) * identifier)) + (binary_expression "fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" identifier * (cast_expression "(float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                                           (local_2074 + iVar13 * 8)" * (cast_expression "(double *)\n                                                                           (local_2074 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + iVar13 * 8)" ( (binary_expression "local_2074 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))))) )) * identifier) )) / identifier) ))))) & number_literal) | (cast_expression "(byte)iVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ))) | (binary_expression "(local_2064 & 3) << 4" (parenthesized_expression "(local_2064 & 3)" ( (binary_expression "local_2064 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(local_2044 & 3) << 2" (parenthesized_expression "(local_2044 & 3)" ( (binary_expression "local_2044 & 3" identifier & number_literal) )) << number_literal)) )))) ;) (expression_statement "iVar10 = unaff_EDI + 0xff179;" (assignment_expression "iVar10 = unaff_EDI + 0xff179" identifier = (binary_expression "unaff_EDI + 0xff179" identifier + number_literal)) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = *(int *)(param_2 + 0x298);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x298)" identifier = (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "local_206c = local_206c + 4;" (assignment_expression "local_206c = local_206c + 4" identifier = (binary_expression "local_206c + 4" identifier + number_literal)) ;) (expression_statement "local_2074 = local_2074 + iVar13 * 8;" (assignment_expression "local_2074 = local_2074 + iVar13 * 8" identifier = (binary_expression "local_2074 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal))) ;) (expression_statement "uVar14 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar14 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "((int)local_206c < (int)(uVar14 - 3))" ( (binary_expression "(int)local_206c < (int)(uVar14 - 3)" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar14 - 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 - 3)" ( (binary_expression "uVar14 - 3" identifier - number_literal) )))) )) ;) }))) (if_statement "if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }" if (parenthesized_expression "((uVar14 & 3) != 0)" ( (binary_expression "(uVar14 & 3) != 0" (parenthesized_expression "(uVar14 & 3)" ( (binary_expression "uVar14 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }" { (if_statement "if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }" if (parenthesized_expression "((int)local_206c < (int)uVar14)" ( (binary_expression "(int)local_206c < (int)uVar14" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }" { (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);" do (compound_statement "{\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            }" { (while_statement "while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }" while (parenthesized_expression "(iVar10 = (int)local_206c % 4, iVar10 == 1)" ( (comma_expression "iVar10 = (int)local_206c % 4, iVar10 == 1" (assignment_expression "iVar10 = (int)local_206c % 4" identifier = (binary_expression "(int)local_206c % 4" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) % number_literal)) , (binary_expression "iVar10 == 1" identifier == number_literal)) )) (compound_statement "{\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }" { (expression_statement "iVar13 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;" (assignment_expression "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8" identifier = (binary_expression "local_2074 + *(int *)(param_2 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_2 + 0x298) * 8" (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30" identifier = (binary_expression "bVar2 | (byte)(local_2044 << 4) & 0x30" identifier | (binary_expression "(byte)(local_2044 << 4) & 0x30" (call_expression "(byte)(local_2044 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 4)" ( (binary_expression "local_2044 << 4" identifier << number_literal) ))) & number_literal))) ;) (labeled_statement "LAB_0020ae35:\n                local_206c = local_206c + 1;" statement_identifier : (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" identifier = (binary_expression "local_206c + 1" identifier + number_literal)) ;)) (if_statement "if (local_206c == uVar14) goto LAB_0020aee2;" if (parenthesized_expression "(local_206c == uVar14)" ( (binary_expression "local_206c == uVar14" identifier == identifier) )) (goto_statement "goto LAB_0020aee2;" goto statement_identifier ;)) })) (if_statement "if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" if (parenthesized_expression "(1 < iVar10)" ( (binary_expression "1 < iVar10" number_literal < identifier) )) (compound_statement "{\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" { (if_statement "if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }" { (expression_statement "iVar13 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;" (assignment_expression "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8" identifier = (binary_expression "local_2074 + *(int *)(param_2 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_2 + 0x298) * 8" (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc" identifier = (binary_expression "bVar2 | (byte)(local_2044 << 2) & 0xc" identifier | (binary_expression "(byte)(local_2044 << 2) & 0xc" (call_expression "(byte)(local_2044 << 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 2)" ( (binary_expression "local_2044 << 2" identifier << number_literal) ))) & number_literal))) ;) }) (else_clause "else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" else (if_statement "if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" if (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) (compound_statement "{\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" { (expression_statement "iVar10 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar10 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;" (assignment_expression "bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" identifier = (binary_expression "bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" identifier | (binary_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" (cast_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" * (cast_expression "(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x20) * 8" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" * (cast_expression "(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x14) * 8" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" * (cast_expression "(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 8) * 8" identifier + (binary_expression "*(int *)(iVar10 + 8) * 8" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) ))))) & number_literal))) ;) })))) (goto_statement "goto LAB_0020ae35;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0) goto LAB_0020ae35;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0020ae35;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar10 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" identifier = (binary_expression "local_206c + 1" identifier + number_literal)) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" * (cast_expression "(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x20) * 8" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" * (cast_expression "(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x14) * 8" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" * (cast_expression "(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 8) * 8" identifier + (binary_expression "*(int *)(iVar10 + 8) * 8" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 6);" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 6)" identifier = (binary_expression "bVar2 | (byte)(local_2044 << 6)" identifier | (call_expression "(byte)(local_2044 << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 6)" ( (binary_expression "local_2044 << 6" identifier << number_literal) ))))) ;) }) while (parenthesized_expression "(local_206c != uVar14)" ( (binary_expression "local_206c != uVar14" identifier != identifier) )) ;) (labeled_statement "LAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;" statement_identifier : (expression_statement "puVar11 = (undefined1 *)~(uint)bVar2;" (assignment_expression "puVar11 = (undefined1 *)~(uint)bVar2" identifier = (cast_expression "(undefined1 *)~(uint)bVar2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "~(uint)bVar2" ~ (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;)) }) (else_clause "else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }" else (compound_statement "{\n            puVar11 = (undefined1 *)0xffffffff;\n          }" { (expression_statement "puVar11 = (undefined1 *)0xffffffff;" (assignment_expression "puVar11 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "iVar10 = unaff_EDI + 0xff179;" (assignment_expression "iVar10 = unaff_EDI + 0xff179" identifier = (binary_expression "unaff_EDI + 0xff179" identifier + number_literal)) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);" (assignment_expression "iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" identifier = (call_expression "SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" identifier (argument_list "(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" ( identifier , (binary_expression "unaff_EDI + 0x10209f" identifier + number_literal) , identifier , identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_2050 = local_2050 + 1;" (assignment_expression "local_2050 = local_2050 + 1" identifier = (binary_expression "local_2050 + 1" identifier + number_literal)) ;) (expression_statement "bVar15 = 0xfffffffe < local_204c;" (assignment_expression "bVar15 = 0xfffffffe < local_204c" identifier = (binary_expression "0xfffffffe < local_204c" number_literal < identifier)) ;) (expression_statement "local_204c = local_204c + 1;" (assignment_expression "local_204c = local_204c + 1" identifier = (binary_expression "local_204c + 1" identifier + number_literal)) ;) (expression_statement "local_2048 = local_2048 + (uint)bVar15;" (assignment_expression "local_2048 = local_2048 + (uint)bVar15" identifier = (binary_expression "local_2048 + (uint)bVar15" identifier + (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_2050 < *(int *)(param_2 + 0x1c))" ( (binary_expression "local_2050 < *(int *)(param_2 + 0x1c)" identifier < (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) ;) })) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "CloseBlob();" (call_expression "CloseBlob()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }" { comment (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar10;" return identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType WriteCIPImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  byte bVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  int iVar9;\n  int iVar10;\n  double dVar11;\n  MagickBooleanType MVar12;\n  char *component;\n  size_t sVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar17;\n  Quantum *local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  char buffer [4096];\n  char basename [4096];\n  \n  __x86_get_pc_thunk_di();\n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  MVar12 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n  if (MVar12 != MagickFalse) {\n    WriteBlobString(image,(char *)(unaff_EDI + 0x103008));\n    component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception);\n    if (component == (char *)0x0) {\n      component = basename;\n      GetPathComponent(image->filename,BasePath,component);\n    }\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component);\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).x;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).y;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->columns + 1 & 0xfffffffe);\n    FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a));\n    WriteBlobString(image,buffer);\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac));\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    if (0 < (int)image->rows) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);\n    }\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3));\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc));\n    CloseBlob(image);\n    MVar12 = MagickTrue;\n  }\n  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar12;\n}\n\n" comment comment comment comment comment comment comment (function_definition "MagickBooleanType WriteCIPImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  byte bVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  int iVar9;\n  int iVar10;\n  double dVar11;\n  MagickBooleanType MVar12;\n  char *component;\n  size_t sVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar17;\n  Quantum *local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  char buffer [4096];\n  char basename [4096];\n  \n  __x86_get_pc_thunk_di();\n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  MVar12 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n  if (MVar12 != MagickFalse) {\n    WriteBlobString(image,(char *)(unaff_EDI + 0x103008));\n    component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception);\n    if (component == (char *)0x0) {\n      component = basename;\n      GetPathComponent(image->filename,BasePath,component);\n    }\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component);\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).x;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).y;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->columns + 1 & 0xfffffffe);\n    FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a));\n    WriteBlobString(image,buffer);\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac));\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    if (0 < (int)image->rows) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);\n    }\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3));\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc));\n    CloseBlob(image);\n    MVar12 = MagickTrue;\n  }\n  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar12;\n}" type_identifier (function_declarator "WriteCIPImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)" identifier (parameter_list "(ImageInfo *image_info,Image *image,ExceptionInfo *exception)" ( (parameter_declaration "ImageInfo *image_info" type_identifier (pointer_declarator "*image_info" * identifier)) , (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  int iVar9;\n  int iVar10;\n  double dVar11;\n  MagickBooleanType MVar12;\n  char *component;\n  size_t sVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar17;\n  Quantum *local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  char buffer [4096];\n  char basename [4096];\n  \n  __x86_get_pc_thunk_di();\n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  MVar12 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n  if (MVar12 != MagickFalse) {\n    WriteBlobString(image,(char *)(unaff_EDI + 0x103008));\n    component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception);\n    if (component == (char *)0x0) {\n      component = basename;\n      GetPathComponent(image->filename,BasePath,component);\n    }\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component);\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).x;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).y;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->columns + 1 & 0xfffffffe);\n    FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a));\n    WriteBlobString(image,buffer);\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac));\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    if (0 < (int)image->rows) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);\n    }\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3));\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc));\n    CloseBlob(image);\n    MVar12 = MagickTrue;\n  }\n  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar12;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar8;" type_identifier (pointer_declarator "*pPVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "double dVar11;" primitive_type identifier ;) (declaration "MagickBooleanType MVar12;" type_identifier identifier ;) (declaration "char *component;" primitive_type (pointer_declarator "*component" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "Quantum *local_2074;" type_identifier (pointer_declarator "*local_2074" * identifier) ;) (declaration "uint local_206c;" type_identifier identifier ;) (declaration "uint local_2064;" type_identifier identifier ;) (declaration "int local_2050;" primitive_type identifier ;) (declaration "uint local_204c;" type_identifier identifier ;) (declaration "int local_2048;" primitive_type identifier ;) (declaration "uint local_2044;" type_identifier identifier ;) (declaration "char buffer [4096];" primitive_type (array_declarator "buffer [4096]" identifier [ number_literal ]) ;) (declaration "char basename [4096];" primitive_type (array_declarator "basename [4096]" identifier [ number_literal ]) ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar7 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(image_info == (ImageInfo *)0x0)" ( (binary_expression "image_info == (ImageInfo *)0x0" identifier == (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd4439)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4439)" ( (binary_expression "unaff_EDI + 0xd4439" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(image_info->signature != 0xabacadab)" ( (binary_expression "image_info->signature != 0xabacadab" (field_expression "image_info->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd4461)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4461)" ( (binary_expression "unaff_EDI + 0xd4461" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xed40d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xed40d)" ( (binary_expression "unaff_EDI + 0xed40d" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xdfbd1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdfbd1)" ( (binary_expression "unaff_EDI + 0xdfbd1" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename);\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename);" (call_expression "LogMagickEvent(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename)" identifier (argument_list "(TraceEvent,&UNK_00102ffb + unaff_EDI,(char *)(unaff_EDI + 0x1030f1),0xc1,\n                   (char *)(unaff_EDI + 0xeccc7),image->filename)" ( identifier , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , (cast_expression "(char *)(unaff_EDI + 0x1030f1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1030f1)" ( (binary_expression "unaff_EDI + 0x1030f1" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0xeccc7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xeccc7)" ( (binary_expression "unaff_EDI + 0xeccc7" identifier + number_literal) ))) , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd52fd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd52fd)" ( (binary_expression "unaff_EDI + 0xd52fd" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { comment (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd60ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd60ed)" ( (binary_expression "unaff_EDI + 0xd60ed" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (expression_statement "MVar12 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);" (assignment_expression "MVar12 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception)" identifier = (call_expression "OpenBlob(image_info,image,WriteBinaryBlobMode,exception)" identifier (argument_list "(image_info,image,WriteBinaryBlobMode,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar12 != MagickFalse) {\n    WriteBlobString(image,(char *)(unaff_EDI + 0x103008));\n    component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception);\n    if (component == (char *)0x0) {\n      component = basename;\n      GetPathComponent(image->filename,BasePath,component);\n    }\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component);\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).x;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).y;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->columns + 1 & 0xfffffffe);\n    FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a));\n    WriteBlobString(image,buffer);\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac));\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    if (0 < (int)image->rows) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);\n    }\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3));\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc));\n    CloseBlob(image);\n    MVar12 = MagickTrue;\n  }" if (parenthesized_expression "(MVar12 != MagickFalse)" ( (binary_expression "MVar12 != MagickFalse" identifier != identifier) )) (compound_statement "{\n    WriteBlobString(image,(char *)(unaff_EDI + 0x103008));\n    component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception);\n    if (component == (char *)0x0) {\n      component = basename;\n      GetPathComponent(image->filename,BasePath,component);\n    }\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component);\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).x;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->page).y;\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    dVar11 = (double)(image->columns + 1 & 0xfffffffe);\n    FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20));\n    WriteBlobString(image,buffer);\n    FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a));\n    WriteBlobString(image,buffer);\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac));\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    if (0 < (int)image->rows) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);\n    }\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3));\n    WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc));\n    CloseBlob(image);\n    MVar12 = MagickTrue;\n  }" { (expression_statement "WriteBlobString(image,(char *)(unaff_EDI + 0x103008));" (call_expression "WriteBlobString(image,(char *)(unaff_EDI + 0x103008))" identifier (argument_list "(image,(char *)(unaff_EDI + 0x103008))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x103008)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103008)" ( (binary_expression "unaff_EDI + 0x103008" identifier + number_literal) ))) ))) ;) (expression_statement "component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception);" (assignment_expression "component = GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception)" identifier = (call_expression "GetImageProperty(image,(char *)(unaff_EDI + 0xf4682),exception)" identifier (argument_list "(image,(char *)(unaff_EDI + 0xf4682),exception)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xf4682)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xf4682)" ( (binary_expression "unaff_EDI + 0xf4682" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (component == (char *)0x0) {\n      component = basename;\n      GetPathComponent(image->filename,BasePath,component);\n    }" if (parenthesized_expression "(component == (char *)0x0)" ( (binary_expression "component == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      component = basename;\n      GetPathComponent(image->filename,BasePath,component);\n    }" { (expression_statement "component = basename;" (assignment_expression "component = basename" identifier = identifier) ;) (expression_statement "GetPathComponent(image->filename,BasePath,component);" (call_expression "GetPathComponent(image->filename,BasePath,component)" identifier (argument_list "(image->filename,BasePath,component)" ( (field_expression "image->filename" identifier -> field_identifier) , identifier , identifier ))) ;) })) (expression_statement "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component);" (call_expression "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component)" identifier (argument_list "(buffer,0x1000,(char *)(unaff_EDI + 0x10301d),component)" ( identifier , number_literal , (cast_expression "(char *)(unaff_EDI + 0x10301d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10301d)" ( (binary_expression "unaff_EDI + 0x10301d" identifier + number_literal) ))) , identifier ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) (expression_statement "dVar11 = (double)(image->page).x;" (assignment_expression "dVar11 = (double)(image->page).x" identifier = (cast_expression "(double)(image->page).x" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));" (call_expression "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20))" identifier (argument_list "(buffer,0x1000,(char *)(unaff_EDI + 0x103030),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20))" ( identifier , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103030)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103030)" ( (binary_expression "unaff_EDI + 0x103030" identifier + number_literal) ))) , (call_expression "SUB84(dVar11,0)" identifier (argument_list "(dVar11,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar11 >> 0x20)" ( (binary_expression "(ulonglong)dVar11 >> 0x20" (cast_expression "(ulonglong)dVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) (expression_statement "dVar11 = (double)(image->page).y;" (assignment_expression "dVar11 = (double)(image->page).y" identifier = (cast_expression "(double)(image->page).y" ( (type_descriptor "double" primitive_type) ) (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));" (call_expression "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20))" identifier (argument_list "(buffer,0x1000,(char *)(unaff_EDI + 0x10304e),SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20))" ( identifier , number_literal , (cast_expression "(char *)(unaff_EDI + 0x10304e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10304e)" ( (binary_expression "unaff_EDI + 0x10304e" identifier + number_literal) ))) , (call_expression "SUB84(dVar11,0)" identifier (argument_list "(dVar11,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar11 >> 0x20)" ( (binary_expression "(ulonglong)dVar11 >> 0x20" (cast_expression "(ulonglong)dVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) (expression_statement "dVar11 = (double)(image->columns + 1 & 0xfffffffe);" (assignment_expression "dVar11 = (double)(image->columns + 1 & 0xfffffffe)" identifier = (cast_expression "(double)(image->columns + 1 & 0xfffffffe)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(image->columns + 1 & 0xfffffffe)" ( (binary_expression "image->columns + 1 & 0xfffffffe" (binary_expression "image->columns + 1" (field_expression "image->columns" identifier -> field_identifier) + number_literal) & number_literal) )))) ;) (expression_statement "FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20));" (call_expression "FormatLocaleString(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20))" identifier (argument_list "(buffer,0x1000,&UNK_0010306c + unaff_EDI,SUB84(dVar11,0),\n                       (int)((ulonglong)dVar11 >> 0x20))" ( identifier , number_literal , (binary_expression "&UNK_0010306c + unaff_EDI" (pointer_expression "&UNK_0010306c" & identifier) + identifier) , (call_expression "SUB84(dVar11,0)" identifier (argument_list "(dVar11,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar11 >> 0x20)" ( (binary_expression "(ulonglong)dVar11 >> 0x20" (cast_expression "(ulonglong)dVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) (expression_statement "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20));" (call_expression "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20))" identifier (argument_list "(buffer,0x1000,(char *)(unaff_EDI + 0x103082),SUB84((double)image->rows,0),\n                       (int)((ulonglong)(double)image->rows >> 0x20))" ( identifier , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103082)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103082)" ( (binary_expression "unaff_EDI + 0x103082" identifier + number_literal) ))) , (call_expression "SUB84((double)image->rows,0)" identifier (argument_list "((double)image->rows,0)" ( (cast_expression "(double)image->rows" ( (type_descriptor "double" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) , number_literal ))) , (cast_expression "(int)((ulonglong)(double)image->rows >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(double)image->rows >> 0x20)" ( (binary_expression "(ulonglong)(double)image->rows >> 0x20" (cast_expression "(ulonglong)(double)image->rows" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(double)image->rows" ( (type_descriptor "double" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) >> number_literal) ))) ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) (expression_statement "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a));" (call_expression "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0x10309a))" identifier (argument_list "(buffer,0x1000,(char *)(unaff_EDI + 0x10309a))" ( identifier , number_literal , (cast_expression "(char *)(unaff_EDI + 0x10309a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10309a)" ( (binary_expression "unaff_EDI + 0x10309a" identifier + number_literal) ))) ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac));" (call_expression "WriteBlobString(image,(char *)(unaff_EDI + 0x1030ac))" identifier (argument_list "(image,(char *)(unaff_EDI + 0x1030ac))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x1030ac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1030ac)" ( (binary_expression "unaff_EDI + 0x1030ac" identifier + number_literal) ))) ))) ;) (expression_statement "TransformImageColorspace(image,sRGBColorspace,exception);" (call_expression "TransformImageColorspace(image,sRGBColorspace,exception)" identifier (argument_list "(image,sRGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) (if_statement "if (0 < (int)image->rows) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);\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      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);\n    }" { (expression_statement "local_204c = 0;" (assignment_expression "local_204c = 0" identifier = number_literal) ;) (expression_statement "local_2048 = 0;" (assignment_expression "local_2048 = 0" identifier = number_literal) ;) (expression_statement "local_2050 = 0;" (assignment_expression "local_2050 = 0" identifier = number_literal) ;) (do_statement "do {\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      } while (local_2050 < (int)image->rows);" do (compound_statement "{\n        local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);\n        if (local_2074 == (Quantum *)0x0) break;\n        uVar16 = image->columns;\n        if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }\n        if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }\n        MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);\n        if (MVar12 == MagickFalse) break;\n        local_2050 = local_2050 + 1;\n        bVar17 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar17;\n      }" { (expression_statement "local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception);" (assignment_expression "local_2074 = GetVirtualPixels(image,0,local_2050,image->columns,1,exception)" identifier = (call_expression "GetVirtualPixels(image,0,local_2050,image->columns,1,exception)" identifier (argument_list "(image,0,local_2050,image->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (local_2074 == (Quantum *)0x0) break;" if (parenthesized_expression "(local_2074 == (Quantum *)0x0)" ( (binary_expression "local_2074 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = image->columns;" (assignment_expression "uVar16 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if ((int)uVar16 < 4) {\n          local_206c = 0;\n        }\n        else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }" if (parenthesized_expression "((int)uVar16 < 4)" ( (binary_expression "(int)uVar16 < 4" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_206c = 0;\n        }" { (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }" else (compound_statement "{\n          sVar13 = image->number_channels;\n          local_206c = 0;\n          do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));\n        }" { (expression_statement "sVar13 = image->number_channels;" (assignment_expression "sVar13 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" identifier = number_literal) ;) (do_statement "do {\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          } while ((int)local_206c < (int)(uVar16 - 3));" do (compound_statement "{\n            fVar2 = *(float *)(unaff_EDI + 0xe8281);\n            pPVar8 = image->channel_map;\n            iVar15 = pPVar8->offset;\n            iVar9 = pPVar8[1].offset;\n            iVar10 = pPVar8[2].offset;\n            fVar3 = *(float *)(unaff_EDI + 0xe827d);\n            fVar4 = *(float *)(unaff_EDI + 0xe8285);\n            fVar5 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar6 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            iVar14 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);\n            FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            WriteBlobString(image,buffer);\n            sVar13 = image->number_channels;\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + sVar13;\n            uVar16 = image->columns;\n          }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xe8281);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xe8281)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) ))))) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "iVar15 = pPVar8->offset;" (assignment_expression "iVar15 = pPVar8->offset" identifier = (field_expression "pPVar8->offset" identifier -> field_identifier)) ;) (expression_statement "iVar9 = pPVar8[1].offset;" (assignment_expression "iVar9 = pPVar8[1].offset" identifier = (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar10 = pPVar8[2].offset;" (assignment_expression "iVar10 = pPVar8[2].offset" identifier = (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xe827d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xe827d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) ))))) ;) (expression_statement "fVar4 = *(float *)(unaff_EDI + 0xe8285);" (assignment_expression "fVar4 = *(float *)(unaff_EDI + 0xe8285)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) ))))) ;) (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xdf3f1);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xdf3f1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) ;) (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xd4fc1);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xd4fc1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" identifier (argument_list "((((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" ( (binary_expression "(((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5) /\n                                     fVar6" (parenthesized_expression "(((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5)" ( (binary_expression "((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2) * fVar5" (parenthesized_expression "((float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2)" ( (binary_expression "(float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 3 + iVar15] * fVar2" (binary_expression "(float)local_2074[sVar13 * 3 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 3 + iVar9] * fVar3" (binary_expression "(float)local_2074[sVar13 * 3 + iVar10] * fVar4" (cast_expression "(float)local_2074[sVar13 * 3 + iVar10]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 * 3 + iVar10]" identifier [ (binary_expression "sVar13 * 3 + iVar10" (binary_expression "sVar13 * 3" identifier * number_literal) + identifier) ])) * identifier) + (binary_expression "(float)local_2074[sVar13 * 3 + iVar9] * fVar3" (cast_expression "(float)local_2074[sVar13 * 3 + iVar9]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 * 3 + iVar9]" identifier [ (binary_expression "sVar13 * 3 + iVar9" (binary_expression "sVar13 * 3" identifier * number_literal) + identifier) ])) * identifier)) + (binary_expression "(float)local_2074[sVar13 * 3 + iVar15] * fVar2" (cast_expression "(float)local_2074[sVar13 * 3 + iVar15]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 * 3 + iVar15]" identifier [ (binary_expression "sVar13 * 3 + iVar15" (binary_expression "sVar13 * 3" identifier * number_literal) + identifier) ])) * identifier)) )) * identifier) )) / identifier) )))))) ;) (expression_statement "iVar14 = local_2044 << 6;" (assignment_expression "iVar14 = local_2044 << 6" identifier = (binary_expression "local_2044 << 6" identifier << number_literal)) ;) (expression_statement "local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6);" (assignment_expression "local_2064 = (uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" identifier (argument_list "((((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6)" ( (binary_expression "(((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5) /\n                                     fVar6" (parenthesized_expression "(((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5)" ( (binary_expression "((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2) * fVar5" (parenthesized_expression "((float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2)" ( (binary_expression "(float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3 +\n                                      (float)local_2074[sVar13 * 2 + iVar15] * fVar2" (binary_expression "(float)local_2074[sVar13 * 2 + iVar10] * fVar4 +\n                                      (float)local_2074[sVar13 * 2 + iVar9] * fVar3" (binary_expression "(float)local_2074[sVar13 * 2 + iVar10] * fVar4" (cast_expression "(float)local_2074[sVar13 * 2 + iVar10]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 * 2 + iVar10]" identifier [ (binary_expression "sVar13 * 2 + iVar10" (binary_expression "sVar13 * 2" identifier * number_literal) + identifier) ])) * identifier) + (binary_expression "(float)local_2074[sVar13 * 2 + iVar9] * fVar3" (cast_expression "(float)local_2074[sVar13 * 2 + iVar9]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 * 2 + iVar9]" identifier [ (binary_expression "sVar13 * 2 + iVar9" (binary_expression "sVar13 * 2" identifier * number_literal) + identifier) ])) * identifier)) + (binary_expression "(float)local_2074[sVar13 * 2 + iVar15] * fVar2" (cast_expression "(float)local_2074[sVar13 * 2 + iVar15]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 * 2 + iVar15]" identifier [ (binary_expression "sVar13 * 2 + iVar15" (binary_expression "sVar13 * 2" identifier * number_literal) + identifier) ])) * identifier)) )) * identifier) )) / identifier) )))))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6)" identifier (argument_list "(((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6)" ( (binary_expression "((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5) / fVar6" (parenthesized_expression "((fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5)" ( (binary_expression "(fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]) * fVar5" (parenthesized_expression "(fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15])" ( (binary_expression "fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9] +\n                                      fVar2 * (float)local_2074[sVar13 + iVar15]" (binary_expression "fVar4 * (float)local_2074[sVar13 + iVar10] +\n                                      fVar3 * (float)local_2074[sVar13 + iVar9]" (binary_expression "fVar4 * (float)local_2074[sVar13 + iVar10]" identifier * (cast_expression "(float)local_2074[sVar13 + iVar10]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + iVar10]" identifier [ (binary_expression "sVar13 + iVar10" identifier + identifier) ]))) + (binary_expression "fVar3 * (float)local_2074[sVar13 + iVar9]" identifier * (cast_expression "(float)local_2074[sVar13 + iVar9]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + iVar9]" identifier [ (binary_expression "sVar13 + iVar9" identifier + identifier) ])))) + (binary_expression "fVar2 * (float)local_2074[sVar13 + iVar15]" identifier * (cast_expression "(float)local_2074[sVar13 + iVar15]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + iVar15]" identifier [ (binary_expression "sVar13 + iVar15" identifier + identifier) ])))) )) * identifier) )) / identifier) )))))) ;) (expression_statement "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2);" (call_expression "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" identifier (argument_list "(buffer,0x1000,(char *)(unaff_EDI + 0xff179),\n                               (uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" ( identifier , number_literal , (cast_expression "(char *)(unaff_EDI + 0xff179)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xff179)" ( (binary_expression "unaff_EDI + 0xff179" identifier + number_literal) ))) , (binary_expression "(uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4 | (local_2044 & 3) << 2" (binary_expression "(uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14) |\n                               (local_2064 & 3) << 4" (call_expression "(uint)(byte)((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14)" ( (binary_expression "(byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3 | (byte)iVar14" (binary_expression "(byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6) & 3" (cast_expression "(byte)(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(longlong)\n                                                  ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6)" identifier (argument_list "((((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6)" ( (binary_expression "(((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)\n                                                        / fVar6" (parenthesized_expression "(((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5)" ( (binary_expression "((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]) * fVar5" (parenthesized_expression "((float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15])" ( (binary_expression "(float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3 +\n                                                         fVar2 * (float)local_2074[iVar15]" (binary_expression "(float)local_2074[iVar10] * fVar4 +\n                                                         (float)local_2074[iVar9] * fVar3" (binary_expression "(float)local_2074[iVar10] * fVar4" (cast_expression "(float)local_2074[iVar10]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[iVar10]" identifier [ identifier ])) * identifier) + (binary_expression "(float)local_2074[iVar9] * fVar3" (cast_expression "(float)local_2074[iVar9]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[iVar9]" identifier [ identifier ])) * identifier)) + (binary_expression "fVar2 * (float)local_2074[iVar15]" identifier * (cast_expression "(float)local_2074[iVar15]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[iVar15]" identifier [ identifier ])))) )) * identifier) )) / identifier) ))))) & number_literal) | (cast_expression "(byte)iVar14" ( (type_descriptor "byte" type_identifier) ) identifier)) ))) | (binary_expression "(local_2064 & 3) << 4" (parenthesized_expression "(local_2064 & 3)" ( (binary_expression "local_2064 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(local_2044 & 3) << 2" (parenthesized_expression "(local_2044 & 3)" ( (binary_expression "local_2044 & 3" identifier & number_literal) )) << number_literal)) ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) (expression_statement "sVar13 = image->number_channels;" (assignment_expression "sVar13 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "local_206c = local_206c + 4;" (assignment_expression "local_206c = local_206c + 4" identifier = (binary_expression "local_206c + 4" identifier + number_literal)) ;) (expression_statement "local_2074 = local_2074 + sVar13;" (assignment_expression "local_2074 = local_2074 + sVar13" identifier = (binary_expression "local_2074 + sVar13" identifier + identifier)) ;) (expression_statement "uVar16 = image->columns;" (assignment_expression "uVar16 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) }) while (parenthesized_expression "((int)local_206c < (int)(uVar16 - 3))" ( (binary_expression "(int)local_206c < (int)(uVar16 - 3)" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar16 - 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar16 - 3)" ( (binary_expression "uVar16 - 3" identifier - number_literal) )))) )) ;) }))) (if_statement "if ((uVar16 & 3) != 0) {\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }" if (parenthesized_expression "((uVar16 & 3) != 0)" ( (binary_expression "(uVar16 & 3) != 0" (parenthesized_expression "(uVar16 & 3)" ( (binary_expression "uVar16 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }\n          FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);\n          WriteBlobString(image,buffer);\n        }" { (if_statement "if ((int)local_206c < (int)uVar16) {\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }\n          else {\n            uVar16 = 0xffffffff;\n          }" if (parenthesized_expression "((int)local_206c < (int)uVar16)" ( (binary_expression "(int)local_206c < (int)uVar16" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar1 = 0;\n            do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);\nLAB_0020aee2:\n            uVar16 = ~(uint)bVar1;\n          }" { (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar16);" do (compound_statement "{\n              while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }\n              if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar15 != 0) goto LAB_0020ae35;\n              pPVar8 = image->channel_map;\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar1 = bVar1 | (byte)(local_2044 << 6);\n            }" { (while_statement "while (iVar15 = (int)local_206c % 4, iVar15 == 1) {\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }" while (parenthesized_expression "(iVar15 = (int)local_206c % 4, iVar15 == 1)" ( (comma_expression "iVar15 = (int)local_206c % 4, iVar15 == 1" (assignment_expression "iVar15 = (int)local_206c % 4" identifier = (binary_expression "(int)local_206c % 4" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) % number_literal)) , (binary_expression "iVar15 == 1" identifier == number_literal)) )) (compound_statement "{\n                pPVar8 = image->channel_map;\n                sVar13 = image->number_channels;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar16) goto LAB_0020aee2;\n              }" { (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "sVar13 = image->number_channels;" (assignment_expression "sVar13 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                          (float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                          *(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset]" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)local_2074[sVar13 + pPVar8[2].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)local_2074[sVar13 + pPVar8[2].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + pPVar8[2].offset]" identifier [ (binary_expression "sVar13 + pPVar8[2].offset" identifier + (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier)) ]))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                          (float)local_2074[sVar13 + pPVar8[1].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)local_2074[sVar13 + pPVar8[1].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + pPVar8[1].offset]" identifier [ (binary_expression "sVar13 + pPVar8[1].offset" identifier + (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier)) ])))) + (binary_expression "(float)local_2074[sVar13 + pPVar8->offset] *\n                                          *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)local_2074[sVar13 + pPVar8->offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + pPVar8->offset]" identifier [ (binary_expression "sVar13 + pPVar8->offset" identifier + (field_expression "pPVar8->offset" identifier -> field_identifier)) ])) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30;" (assignment_expression "bVar1 = bVar1 | (byte)(local_2044 << 4) & 0x30" identifier = (binary_expression "bVar1 | (byte)(local_2044 << 4) & 0x30" identifier | (binary_expression "(byte)(local_2044 << 4) & 0x30" (call_expression "(byte)(local_2044 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 4)" ( (binary_expression "local_2044 << 4" identifier << number_literal) ))) & number_literal))) ;) (labeled_statement "LAB_0020ae35:\n                local_206c = local_206c + 1;" statement_identifier : (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" identifier = (binary_expression "local_206c + 1" identifier + number_literal)) ;)) (if_statement "if (local_206c == uVar16) goto LAB_0020aee2;" if (parenthesized_expression "(local_206c == uVar16)" ( (binary_expression "local_206c == uVar16" identifier == identifier) )) (goto_statement "goto LAB_0020aee2;" goto statement_identifier ;)) })) (if_statement "if (1 < iVar15) {\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" if (parenthesized_expression "(1 < iVar15)" ( (binary_expression "1 < iVar15" number_literal < identifier) )) (compound_statement "{\n                if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" { (if_statement "if (iVar15 == 2) {\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" if (parenthesized_expression "(iVar15 == 2)" ( (binary_expression "iVar15 == 2" identifier == number_literal) )) (compound_statement "{\n                  pPVar8 = image->channel_map;\n                  sVar13 = image->number_channels;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;\n                }" { (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "sVar13 = image->number_channels;" (assignment_expression "sVar13 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset] +\n                                            (float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset] +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset]" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)local_2074[sVar13 + pPVar8[2].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)local_2074[sVar13 + pPVar8[2].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + pPVar8[2].offset]" identifier [ (binary_expression "sVar13 + pPVar8[2].offset" identifier + (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier)) ]))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                            (float)local_2074[sVar13 + pPVar8[1].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)local_2074[sVar13 + pPVar8[1].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + pPVar8[1].offset]" identifier [ (binary_expression "sVar13 + pPVar8[1].offset" identifier + (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier)) ])))) + (binary_expression "(float)local_2074[sVar13 + pPVar8->offset] *\n                                            *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)local_2074[sVar13 + pPVar8->offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[sVar13 + pPVar8->offset]" identifier [ (binary_expression "sVar13 + pPVar8->offset" identifier + (field_expression "pPVar8->offset" identifier -> field_identifier)) ])) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc;" (assignment_expression "bVar1 = bVar1 | (byte)(local_2044 << 2) & 0xc" identifier = (binary_expression "bVar1 | (byte)(local_2044 << 2) & 0xc" identifier | (binary_expression "(byte)(local_2044 << 2) & 0xc" (call_expression "(byte)(local_2044 << 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 2)" ( (binary_expression "local_2044 << 2" identifier << number_literal) ))) & number_literal))) ;) }) (else_clause "else if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" else (if_statement "if (iVar15 == 3) {\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" if (parenthesized_expression "(iVar15 == 3)" ( (binary_expression "iVar15 == 3" identifier == number_literal) )) (compound_statement "{\n                  pPVar8 = image->channel_map;\n                  bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" { (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;" (assignment_expression "bVar1 = bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" identifier = (binary_expression "bVar1 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" identifier | (binary_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" (cast_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset] +\n                                               (float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset] +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset]" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)local_2074[pPVar8[2].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)local_2074[pPVar8[2].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[pPVar8[2].offset]" identifier [ (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) ]))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                               (float)local_2074[pPVar8[1].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)local_2074[pPVar8[1].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[pPVar8[1].offset]" identifier [ (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) ])))) + (binary_expression "(float)local_2074[pPVar8->offset] *\n                                               *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)local_2074[pPVar8->offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[pPVar8->offset]" identifier [ (field_expression "pPVar8->offset" identifier -> field_identifier) ])) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) ))))) & number_literal))) ;) })))) (goto_statement "goto LAB_0020ae35;" goto statement_identifier ;) })) (if_statement "if (iVar15 != 0) goto LAB_0020ae35;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0020ae35;" goto statement_identifier ;)) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" identifier = (binary_expression "local_206c + 1" identifier + number_literal)) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset] +\n                                        (float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset] +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset]" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)local_2074[pPVar8[2].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)local_2074[pPVar8[2].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[pPVar8[2].offset]" identifier [ (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) ]))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                        (float)local_2074[pPVar8[1].offset]" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)local_2074[pPVar8[1].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[pPVar8[1].offset]" identifier [ (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) ])))) + (binary_expression "(float)local_2074[pPVar8->offset] *\n                                        *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)local_2074[pPVar8->offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_2074[pPVar8->offset]" identifier [ (field_expression "pPVar8->offset" identifier -> field_identifier) ])) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar1 = bVar1 | (byte)(local_2044 << 6);" (assignment_expression "bVar1 = bVar1 | (byte)(local_2044 << 6)" identifier = (binary_expression "bVar1 | (byte)(local_2044 << 6)" identifier | (call_expression "(byte)(local_2044 << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 6)" ( (binary_expression "local_2044 << 6" identifier << number_literal) ))))) ;) }) while (parenthesized_expression "(local_206c != uVar16)" ( (binary_expression "local_206c != uVar16" identifier != identifier) )) ;) (labeled_statement "LAB_0020aee2:\n            uVar16 = ~(uint)bVar1;" statement_identifier : (expression_statement "uVar16 = ~(uint)bVar1;" (assignment_expression "uVar16 = ~(uint)bVar1" identifier = (unary_expression "~(uint)bVar1" ~ (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;)) }) (else_clause "else {\n            uVar16 = 0xffffffff;\n          }" else (compound_statement "{\n            uVar16 = 0xffffffff;\n          }" { (expression_statement "uVar16 = 0xffffffff;" (assignment_expression "uVar16 = 0xffffffff" identifier = number_literal) ;) }))) (expression_statement "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16);" (call_expression "FormatLocaleString(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16)" identifier (argument_list "(buffer,0x1000,(char *)(unaff_EDI + 0xff179),uVar16)" ( identifier , number_literal , (cast_expression "(char *)(unaff_EDI + 0xff179)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xff179)" ( (binary_expression "unaff_EDI + 0xff179" identifier + number_literal) ))) , identifier ))) ;) (expression_statement "WriteBlobString(image,buffer);" (call_expression "WriteBlobString(image,buffer)" identifier (argument_list "(image,buffer)" ( identifier , identifier ))) ;) })) (expression_statement "MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows);" (assignment_expression "MVar12 = SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows)" identifier = (call_expression "SetImageProgress(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows)" identifier (argument_list "(image,(char *)(unaff_EDI + 0x10209f),\n                                  CONCAT44(local_2048,local_204c),(ulonglong)image->rows)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x10209f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10209f)" ( (binary_expression "unaff_EDI + 0x10209f" identifier + number_literal) ))) , (call_expression "CONCAT44(local_2048,local_204c)" identifier (argument_list "(local_2048,local_204c)" ( identifier , identifier ))) , (cast_expression "(ulonglong)image->rows" ( (type_descriptor "ulonglong" type_identifier) ) (field_expression "image->rows" identifier -> field_identifier)) )))) ;) (if_statement "if (MVar12 == MagickFalse) break;" if (parenthesized_expression "(MVar12 == MagickFalse)" ( (binary_expression "MVar12 == MagickFalse" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "local_2050 = local_2050 + 1;" (assignment_expression "local_2050 = local_2050 + 1" identifier = (binary_expression "local_2050 + 1" identifier + number_literal)) ;) (expression_statement "bVar17 = 0xfffffffe < local_204c;" (assignment_expression "bVar17 = 0xfffffffe < local_204c" identifier = (binary_expression "0xfffffffe < local_204c" number_literal < identifier)) ;) (expression_statement "local_204c = local_204c + 1;" (assignment_expression "local_204c = local_204c + 1" identifier = (binary_expression "local_204c + 1" identifier + number_literal)) ;) (expression_statement "local_2048 = local_2048 + (uint)bVar17;" (assignment_expression "local_2048 = local_2048 + (uint)bVar17" identifier = (binary_expression "local_2048 + (uint)bVar17" identifier + (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_2050 < (int)image->rows)" ( (binary_expression "local_2050 < (int)image->rows" identifier < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) })) (expression_statement "WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3));" (call_expression "WriteBlobString(image,(char *)(unaff_EDI + 0x1030b3))" identifier (argument_list "(image,(char *)(unaff_EDI + 0x1030b3))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x1030b3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1030b3)" ( (binary_expression "unaff_EDI + 0x1030b3" identifier + number_literal) ))) ))) ;) (expression_statement "WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc));" (call_expression "WriteBlobString(image,(char *)(unaff_EDI + 0x1030bc))" identifier (argument_list "(image,(char *)(unaff_EDI + 0x1030bc))" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x1030bc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1030bc)" ( (binary_expression "unaff_EDI + 0x1030bc" identifier + number_literal) ))) ))) ;) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "MVar12 = MagickTrue;" (assignment_expression "MVar12 = MagickTrue" identifier = identifier) ;) })) (if_statement "if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar7 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar7 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return MVar12;" return identifier ;) })))
(translation_unit "int FUN_0020a8e0(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar10;\n}\n\n" (function_definition "int FUN_0020a8e0(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar10;\n}" primitive_type (function_declarator "FUN_0020a8e0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar10;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "float fVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int local_2074;" primitive_type identifier ;) (declaration "uint local_206c;" type_identifier identifier ;) (declaration "uint local_2064;" type_identifier identifier ;) (declaration "int local_2050;" primitive_type identifier ;) (declaration "uint local_204c;" type_identifier identifier ;) (declaration "int local_2048;" primitive_type identifier ;) (declaration "uint local_2044;" type_identifier identifier ;) (declaration "undefined1 local_2020 [4096];" type_identifier (array_declarator "local_2020 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_0004f293();" (call_expression "FUN_0004f293()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd4439)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4439)" ( (binary_expression "unaff_EDI + 0xd4439" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" * (cast_expression "(int *)(param_1 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f4)" ( (binary_expression "param_1 + 0x31f4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd4461)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4461)" ( (binary_expression "unaff_EDI + 0xd4461" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xed40d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xed40d)" ( (binary_expression "unaff_EDI + 0xed40d" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x3344)" * (cast_expression "(int *)(param_2 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3344)" ( (binary_expression "param_2 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xdfbd1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdfbd1)" ( (binary_expression "unaff_EDI + 0xdfbd1" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_2 + 0x3328) != 0" (pointer_expression "*(int *)(param_2 + 0x3328)" * (cast_expression "(int *)(param_2 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3328)" ( (binary_expression "param_2 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);" (call_expression "LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318)" identifier (argument_list "(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318)" ( number_literal , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , (binary_expression "unaff_EDI + 0x1030f1" identifier + number_literal) , number_literal , (binary_expression "&UNK_000eccc7 + unaff_EDI" (pointer_expression "&UNK_000eccc7" & identifier) + identifier) , (binary_expression "param_2 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_3 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd52fd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd52fd)" ( (binary_expression "unaff_EDI + 0xd52fd" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_3 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" { (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" identifier (argument_list "((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" ( (cast_expression "(char *)(unaff_EDI + 0xd60ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd60ed)" ( (binary_expression "unaff_EDI + 0xd60ed" identifier + number_literal) ))) , (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x103101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x103101)" ( (binary_expression "unaff_EDI + 0x103101" identifier + number_literal) ))) ))) ;) })) (expression_statement "iVar10 = OpenBlob();" (assignment_expression "iVar10 = OpenBlob()" identifier = (call_expression "OpenBlob()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }" { (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar11 = (undefined1 *)GetImageProperty();" (assignment_expression "puVar11 = (undefined1 *)GetImageProperty()" identifier = (cast_expression "(undefined1 *)GetImageProperty()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetImageProperty()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }" if (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" ( (binary_expression "puVar11 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar11 = local_1020;\n      GetPathComponent();\n    }" { (expression_statement "puVar11 = local_1020;" (assignment_expression "puVar11 = local_1020" identifier = identifier) ;) (expression_statement "GetPathComponent();" (call_expression "GetPathComponent()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar10 = unaff_EDI + 0x10301d;" (assignment_expression "iVar10 = unaff_EDI + 0x10301d" identifier = (binary_expression "unaff_EDI + 0x10301d" identifier + number_literal)) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11)" identifier (argument_list "(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11)" ( identifier , number_literal , (binary_expression "unaff_EDI + 0x103030" identifier + number_literal) , (cast_expression "(double)*(int *)(param_2 + 0x208)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_2 + 0x208)" * (cast_expression "(int *)(param_2 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x208)" ( (binary_expression "param_2 + 0x208" identifier + number_literal) ))))) , identifier , identifier , identifier ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16)" identifier (argument_list "(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16)" ( identifier , number_literal , (binary_expression "unaff_EDI + 0x10304e" identifier + number_literal) , (cast_expression "(double)*(int *)(param_2 + 0x20c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_2 + 0x20c)" * (cast_expression "(int *)(param_2 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20c)" ( (binary_expression "param_2 + 0x20c" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16)" identifier (argument_list "(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16)" ( identifier , number_literal , (binary_expression "&UNK_0010306c + unaff_EDI" (pointer_expression "&UNK_0010306c" & identifier) + identifier) , (cast_expression "(double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe)" ( (binary_expression "*(int *)(param_2 + 0x18) + 1U & 0xfffffffe" (binary_expression "*(int *)(param_2 + 0x18) + 1U" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) + number_literal) & number_literal) ))) , identifier ))) ;) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" identifier = identifier) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16)" identifier (argument_list "(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16)" ( identifier , number_literal , (binary_expression "unaff_EDI + 0x103082" identifier + number_literal) , (cast_expression "(double)*(uint *)(param_2 + 0x1c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(uint *)(param_2 + 0x1c)" * (cast_expression "(uint *)(param_2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = param_3;" (assignment_expression "iVar10 = param_3" identifier = identifier) ;) (expression_statement "TransformImageColorspace();" (call_expression "TransformImageColorspace()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }" if (parenthesized_expression "(0 < *(int *)(param_2 + 0x1c))" ( (binary_expression "0 < *(int *)(param_2 + 0x1c)" number_literal < (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }" { (expression_statement "local_204c = 0;" (assignment_expression "local_204c = 0" identifier = number_literal) ;) (expression_statement "local_2048 = 0;" (assignment_expression "local_2048 = 0" identifier = number_literal) ;) (expression_statement "local_2050 = 0;" (assignment_expression "local_2050 = 0" identifier = number_literal) ;) (do_statement "do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));" do (compound_statement "{\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      }" { (expression_statement "local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);" (assignment_expression "local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" identifier (argument_list "(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (local_2074 == 0) break;" if (parenthesized_expression "(local_2074 == 0)" ( (binary_expression "local_2074 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar14 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" if (parenthesized_expression "((int)uVar14 < 4)" ( (binary_expression "(int)uVar14 < 4" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_206c = 0;\n        }" { (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" else (compound_statement "{\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" { (expression_statement "iVar13 = *(int *)(param_2 + 0x298);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x298)" identifier = (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" identifier = number_literal) ;) (do_statement "do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));" do (compound_statement "{\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          }" { (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xe8281);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xe8281)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = local_2074 + iVar13 * 0x18;" (assignment_expression "iVar10 = local_2074 + iVar13 * 0x18" identifier = (binary_expression "local_2074 + iVar13 * 0x18" identifier + (binary_expression "iVar13 * 0x18" identifier * number_literal))) ;) (expression_statement "iVar8 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = iVar10 + iVar13 * -8;" (assignment_expression "iVar1 = iVar10 + iVar13 * -8" identifier = (binary_expression "iVar10 + iVar13 * -8" identifier + (binary_expression "iVar13 * -8" identifier * number_literal))) ;) (expression_statement "iVar12 = iVar13 * -8 + iVar1;" (assignment_expression "iVar12 = iVar13 * -8 + iVar1" identifier = (binary_expression "iVar13 * -8 + iVar1" (binary_expression "iVar13 * -8" identifier * number_literal) + identifier)) ;) (expression_statement "iVar13 = *(int *)(iVar8 + 8);" (assignment_expression "iVar13 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar8 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar8 + 0x14)" identifier = (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x20);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x20)" identifier = (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "fVar4 = *(float *)(unaff_EDI + 0xe827d);" (assignment_expression "fVar4 = *(float *)(unaff_EDI + 0xe827d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) ))))) ;) (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xe8285);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xe8285)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) ))))) ;) (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xdf3f1);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xdf3f1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) ;) (expression_statement "fVar7 = *(float *)(unaff_EDI + 0xd4fc1);" (assignment_expression "fVar7 = *(float *)(unaff_EDI + 0xd4fc1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier (argument_list "((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (binary_expression "(((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7" (parenthesized_expression "(((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6)" ( (binary_expression "((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6" (parenthesized_expression "((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3)" ( (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3" (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4" (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(iVar10 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + iVar8 * 8)" * (cast_expression "(double *)(iVar10 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar8 * 8)" ( (binary_expression "iVar10 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) * identifier) + (binary_expression "(float)*(double *)(iVar10 + iVar9 * 8) * fVar4" (cast_expression "(float)*(double *)(iVar10 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + iVar9 * 8)" * (cast_expression "(double *)(iVar10 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar9 * 8)" ( (binary_expression "iVar10 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))) * identifier)) + (binary_expression "(float)*(double *)(iVar10 + iVar13 * 8) * fVar3" (cast_expression "(float)*(double *)(iVar10 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + iVar13 * 8)" * (cast_expression "(double *)(iVar10 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar13 * 8)" ( (binary_expression "iVar10 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))) * identifier)) )) * identifier) )) / identifier) )))))) ;) (expression_statement "iVar10 = local_2044 << 6;" (assignment_expression "iVar10 = local_2044 << 6" identifier = (binary_expression "local_2044 << 6" identifier << number_literal)) ;) (expression_statement "local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" identifier (argument_list "((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" ( (binary_expression "(((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7" (parenthesized_expression "(((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6)" ( (binary_expression "((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6" (parenthesized_expression "((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3)" ( (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3" (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4" (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(iVar1 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar1 + iVar8 * 8)" * (cast_expression "(double *)(iVar1 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar8 * 8)" ( (binary_expression "iVar1 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) * identifier) + (binary_expression "(float)*(double *)(iVar1 + iVar9 * 8) * fVar4" (cast_expression "(float)*(double *)(iVar1 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar1 + iVar9 * 8)" * (cast_expression "(double *)(iVar1 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar9 * 8)" ( (binary_expression "iVar1 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))) * identifier)) + (binary_expression "(float)*(double *)(iVar1 + iVar13 * 8) * fVar3" (cast_expression "(float)*(double *)(iVar1 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar1 + iVar13 * 8)" * (cast_expression "(double *)(iVar1 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar13 * 8)" ( (binary_expression "iVar1 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))) * identifier)) )) * identifier) )) / identifier) )))))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" identifier = (cast_expression "(uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" identifier (argument_list "(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" ( (binary_expression "((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7" (parenthesized_expression "((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6)" ( (binary_expression "(fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6" (parenthesized_expression "(fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8))" ( (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)" (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8)" (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8)" identifier * (cast_expression "(float)*(double *)(iVar12 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar12 + iVar8 * 8)" * (cast_expression "(double *)(iVar12 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar8 * 8)" ( (binary_expression "iVar12 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) )))))) + (binary_expression "fVar4 * (float)*(double *)(iVar12 + iVar9 * 8)" identifier * (cast_expression "(float)*(double *)(iVar12 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar12 + iVar9 * 8)" * (cast_expression "(double *)(iVar12 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar9 * 8)" ( (binary_expression "iVar12 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))))) + (binary_expression "fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)" identifier * (cast_expression "(float)*(double *)(iVar12 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar12 + iVar13 * 8)" * (cast_expression "(double *)(iVar12 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar13 * 8)" ( (binary_expression "iVar12 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))))) )) * identifier) )) / identifier) )))))) ;) (expression_statement "puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);" (assignment_expression "puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" identifier = (cast_expression "(undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" ( (binary_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2" (binary_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4" (call_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10)" ( (binary_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10" (binary_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3" (cast_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" identifier (argument_list "((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" ( (binary_expression "(((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7" (parenthesized_expression "(((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6)" ( (binary_expression "((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6" (parenthesized_expression "((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 )" ( (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4" (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(local_2074 + iVar8 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + iVar8 * 8)" * (cast_expression "(double *)(local_2074 + iVar8 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + iVar8 * 8)" ( (binary_expression "local_2074 + iVar8 * 8" identifier + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) * identifier) + (binary_expression "(float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4" (cast_expression "(float)*(double *)(local_2074 + iVar9 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + iVar9 * 8)" * (cast_expression "(double *)(local_2074 + iVar9 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + iVar9 * 8)" ( (binary_expression "local_2074 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))) * identifier)) + (binary_expression "fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" identifier * (cast_expression "(float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                                           (local_2074 + iVar13 * 8)" * (cast_expression "(double *)\n                                                                           (local_2074 + iVar13 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + iVar13 * 8)" ( (binary_expression "local_2074 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal)) ))))))) )) * identifier) )) / identifier) ))))) & number_literal) | (cast_expression "(byte)iVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ))) | (binary_expression "(local_2064 & 3) << 4" (parenthesized_expression "(local_2064 & 3)" ( (binary_expression "local_2064 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(local_2044 & 3) << 2" (parenthesized_expression "(local_2044 & 3)" ( (binary_expression "local_2044 & 3" identifier & number_literal) )) << number_literal)) )))) ;) (expression_statement "iVar10 = unaff_EDI + 0xff179;" (assignment_expression "iVar10 = unaff_EDI + 0xff179" identifier = (binary_expression "unaff_EDI + 0xff179" identifier + number_literal)) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = *(int *)(param_2 + 0x298);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x298)" identifier = (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "local_206c = local_206c + 4;" (assignment_expression "local_206c = local_206c + 4" identifier = (binary_expression "local_206c + 4" identifier + number_literal)) ;) (expression_statement "local_2074 = local_2074 + iVar13 * 8;" (assignment_expression "local_2074 = local_2074 + iVar13 * 8" identifier = (binary_expression "local_2074 + iVar13 * 8" identifier + (binary_expression "iVar13 * 8" identifier * number_literal))) ;) (expression_statement "uVar14 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar14 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "((int)local_206c < (int)(uVar14 - 3))" ( (binary_expression "(int)local_206c < (int)(uVar14 - 3)" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar14 - 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 - 3)" ( (binary_expression "uVar14 - 3" identifier - number_literal) )))) )) ;) }))) (if_statement "if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }" if (parenthesized_expression "((uVar14 & 3) != 0)" ( (binary_expression "(uVar14 & 3) != 0" (parenthesized_expression "(uVar14 & 3)" ( (binary_expression "uVar14 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }" { (if_statement "if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }" if (parenthesized_expression "((int)local_206c < (int)uVar14)" ( (binary_expression "(int)local_206c < (int)uVar14" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }" { (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);" do (compound_statement "{\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            }" { (while_statement "while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }" while (parenthesized_expression "(iVar10 = (int)local_206c % 4, iVar10 == 1)" ( (comma_expression "iVar10 = (int)local_206c % 4, iVar10 == 1" (assignment_expression "iVar10 = (int)local_206c % 4" identifier = (binary_expression "(int)local_206c % 4" (cast_expression "(int)local_206c" ( (type_descriptor "int" primitive_type) ) identifier) % number_literal)) , (binary_expression "iVar10 == 1" identifier == number_literal)) )) (compound_statement "{\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }" { (expression_statement "iVar13 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;" (assignment_expression "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8" identifier = (binary_expression "local_2074 + *(int *)(param_2 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_2 + 0x298) * 8" (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30" identifier = (binary_expression "bVar2 | (byte)(local_2044 << 4) & 0x30" identifier | (binary_expression "(byte)(local_2044 << 4) & 0x30" (call_expression "(byte)(local_2044 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 4)" ( (binary_expression "local_2044 << 4" identifier << number_literal) ))) & number_literal))) ;) (labeled_statement "LAB_0020ae35:\n                local_206c = local_206c + 1;" statement_identifier : (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" identifier = (binary_expression "local_206c + 1" identifier + number_literal)) ;)) (if_statement "if (local_206c == uVar14) goto LAB_0020aee2;" if (parenthesized_expression "(local_206c == uVar14)" ( (binary_expression "local_206c == uVar14" identifier == identifier) )) (goto_statement "goto LAB_0020aee2;" goto statement_identifier ;)) })) (if_statement "if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" if (parenthesized_expression "(1 < iVar10)" ( (binary_expression "1 < iVar10" number_literal < identifier) )) (compound_statement "{\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" { (if_statement "if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }" { (expression_statement "iVar13 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;" (assignment_expression "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8" identifier = (binary_expression "local_2074 + *(int *)(param_2 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_2 + 0x298) * 8" (pointer_expression "*(int *)(param_2 + 0x298)" * (cast_expression "(int *)(param_2 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x298)" ( (binary_expression "param_2 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc" identifier = (binary_expression "bVar2 | (byte)(local_2044 << 2) & 0xc" identifier | (binary_expression "(byte)(local_2044 << 2) & 0xc" (call_expression "(byte)(local_2044 << 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 2)" ( (binary_expression "local_2044 << 2" identifier << number_literal) ))) & number_literal))) ;) }) (else_clause "else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" else (if_statement "if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" if (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) (compound_statement "{\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" { (expression_statement "iVar10 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar10 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;" (assignment_expression "bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" identifier = (binary_expression "bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" identifier | (binary_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" (cast_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" * (cast_expression "(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x20) * 8" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" * (cast_expression "(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x14) * 8" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" * (cast_expression "(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 8) * 8" identifier + (binary_expression "*(int *)(iVar10 + 8) * 8" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) ))))) & number_literal))) ;) })))) (goto_statement "goto LAB_0020ae35;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0) goto LAB_0020ae35;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0020ae35;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar10 = *(int *)(param_2 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2a8)" * (cast_expression "(int *)(param_2 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a8)" ( (binary_expression "param_2 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" identifier = (binary_expression "local_206c + 1" identifier + number_literal)) ;) (expression_statement "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" identifier = (cast_expression "(uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" identifier (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" ( (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1))" ( (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281))" ( (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" * (cast_expression "(float *)(unaff_EDI + 0xe8285)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8285)" ( (binary_expression "unaff_EDI + 0xe8285" identifier + number_literal) )))) * (cast_expression "(float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" * (cast_expression "(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x20) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x20) * 8" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) + (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" * (cast_expression "(float *)(unaff_EDI + 0xe827d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe827d)" ( (binary_expression "unaff_EDI + 0xe827d" identifier + number_literal) )))) * (cast_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" * (cast_expression "(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x14) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar10 + 0x14) * 8" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) ))))))) + (binary_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" * (cast_expression "(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 8) * 8)" ( (binary_expression "local_2074 + *(int *)(iVar10 + 8) * 8" identifier + (binary_expression "*(int *)(iVar10 + 8) * 8" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" * (cast_expression "(float *)(unaff_EDI + 0xe8281)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xe8281)" ( (binary_expression "unaff_EDI + 0xe8281" identifier + number_literal) )))))) )) * (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" * (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf3f1)" ( (binary_expression "unaff_EDI + 0xdf3f1" identifier + number_literal) ))))) )) / (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" * (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd4fc1)" ( (binary_expression "unaff_EDI + 0xd4fc1" identifier + number_literal) ))))) )))))) ;) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 6);" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 6)" identifier = (binary_expression "bVar2 | (byte)(local_2044 << 6)" identifier | (call_expression "(byte)(local_2044 << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_2044 << 6)" ( (binary_expression "local_2044 << 6" identifier << number_literal) ))))) ;) }) while (parenthesized_expression "(local_206c != uVar14)" ( (binary_expression "local_206c != uVar14" identifier != identifier) )) ;) (labeled_statement "LAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;" statement_identifier : (expression_statement "puVar11 = (undefined1 *)~(uint)bVar2;" (assignment_expression "puVar11 = (undefined1 *)~(uint)bVar2" identifier = (cast_expression "(undefined1 *)~(uint)bVar2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "~(uint)bVar2" ~ (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;)) }) (else_clause "else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }" else (compound_statement "{\n            puVar11 = (undefined1 *)0xffffffff;\n          }" { (expression_statement "puVar11 = (undefined1 *)0xffffffff;" (assignment_expression "puVar11 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "iVar10 = unaff_EDI + 0xff179;" (assignment_expression "iVar10 = unaff_EDI + 0xff179" identifier = (binary_expression "unaff_EDI + 0xff179" identifier + number_literal)) ;) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);" (assignment_expression "iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" identifier = (call_expression "SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" identifier (argument_list "(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" ( identifier , (binary_expression "unaff_EDI + 0x10209f" identifier + number_literal) , identifier , identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" * (cast_expression "(undefined4 *)(param_2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_2050 = local_2050 + 1;" (assignment_expression "local_2050 = local_2050 + 1" identifier = (binary_expression "local_2050 + 1" identifier + number_literal)) ;) (expression_statement "bVar15 = 0xfffffffe < local_204c;" (assignment_expression "bVar15 = 0xfffffffe < local_204c" identifier = (binary_expression "0xfffffffe < local_204c" number_literal < identifier)) ;) (expression_statement "local_204c = local_204c + 1;" (assignment_expression "local_204c = local_204c + 1" identifier = (binary_expression "local_204c + 1" identifier + number_literal)) ;) (expression_statement "local_2048 = local_2048 + (uint)bVar15;" (assignment_expression "local_2048 = local_2048 + (uint)bVar15" identifier = (binary_expression "local_2048 + (uint)bVar15" identifier + (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_2050 < *(int *)(param_2 + 0x1c))" ( (binary_expression "local_2050 < *(int *)(param_2 + 0x1c)" identifier < (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) ))))) )) ;) })) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" identifier (argument_list "()" ( ))) ;) (expression_statement "CloseBlob();" (call_expression "CloseBlob()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_002decd0();\n  }" { (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar10;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT , (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 (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT , (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 (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT , (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 (call_expression IDENT (argument_list ( LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT , (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 (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) ))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_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 = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT)) )) * IDENT) )) / IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT)) )) * IDENT) )) / IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))))) + (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))))) + (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))))) )) * IDENT) )) / IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) * IDENT)) + (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))))) )) * IDENT) )) / IDENT) ))))) & LIT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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) ))))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (assignment_expression IDENT = (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) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) )))))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) ))))))) + (binary_expression (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)) ))))) * (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) ))))) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (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 = (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) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) )))))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) ))))))) + (binary_expression (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)) ))))) * (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) ))))) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT))) ;) }) (else_clause else (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 = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) )))))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) ))))))) + (binary_expression (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)) ))))) * (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) ))))) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) & LIT))) ;) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) )))))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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)) ))))))) + (binary_expression (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)) ))))) * (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) ))))) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_0020a8e0(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar10;\n}" (primitive_type "int") (function_declarator "FUN_0020a8e0(int param_1,int param_2,int param_3)" (identifier "FUN_0020a8e0") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  float fVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  bool bVar15;\n  undefined1 *puVar16;\n  int local_2074;\n  uint local_206c;\n  uint local_2064;\n  int local_2050;\n  uint local_204c;\n  int local_2048;\n  uint local_2044;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  \n  FUN_0004f293();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }\n  iVar10 = OpenBlob();\n  if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar10;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "float fVar3;" (primitive_type "float") (identifier "fVar3") (; ";")) (declaration "float fVar4;" (primitive_type "float") (identifier "fVar4") (; ";")) (declaration "float fVar5;" (primitive_type "float") (identifier "fVar5") (; ";")) (declaration "float fVar6;" (primitive_type "float") (identifier "fVar6") (; ";")) (declaration "float fVar7;" (primitive_type "float") (identifier "fVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int local_2074;" (primitive_type "int") (identifier "local_2074") (; ";")) (declaration "uint local_206c;" (type_identifier "uint") (identifier "local_206c") (; ";")) (declaration "uint local_2064;" (type_identifier "uint") (identifier "local_2064") (; ";")) (declaration "int local_2050;" (primitive_type "int") (identifier "local_2050") (; ";")) (declaration "uint local_204c;" (type_identifier "uint") (identifier "local_204c") (; ";")) (declaration "int local_2048;" (primitive_type "int") (identifier "local_2048") (; ";")) (declaration "uint local_2044;" (type_identifier "uint") (identifier "local_2044") (; ";")) (declaration "undefined1 local_2020 [4096];" (type_identifier "undefined1") (array_declarator "local_2020 [4096]" (identifier "local_2020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "undefined1 local_1020 [4096];" (type_identifier "undefined1") (array_declarator "local_1020 [4096]" (identifier "local_1020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "FUN_0004f293();" (call_expression "FUN_0004f293()" (identifier "FUN_0004f293") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,\n                  (char *)(unaff_EDI + 0x103101))" (( "(") (cast_expression "(char *)(unaff_EDI + 0xd4439)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd4439)" (( "(") (binary_expression "unaff_EDI + 0xd4439" (identifier "unaff_EDI") (+ "+") (number_literal "0xd4439")) () ")"))) (, ",") (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" (& "&") (identifier "UNK_00102ffb")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "0xbc") (, ",") (cast_expression "(char *)(unaff_EDI + 0x103101)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x103101)" (( "(") (binary_expression "unaff_EDI + 0x103101" (identifier "unaff_EDI") (+ "+") (number_literal "0x103101")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" (* "*") (cast_expression "(int *)(param_1 + 0x31f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x31f4)" (( "(") (binary_expression "param_1 + 0x31f4" (identifier "param_1") (+ "+") (number_literal "0x31f4")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,\n                  (char *)(unaff_EDI + 0x103101))" (( "(") (cast_expression "(char *)(unaff_EDI + 0xd4461)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd4461)" (( "(") (binary_expression "unaff_EDI + 0xd4461" (identifier "unaff_EDI") (+ "+") (number_literal "0xd4461")) () ")"))) (, ",") (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" (& "&") (identifier "UNK_00102ffb")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "0xbd") (, ",") (cast_expression "(char *)(unaff_EDI + 0x103101)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x103101)" (( "(") (binary_expression "unaff_EDI + 0x103101" (identifier "unaff_EDI") (+ "+") (number_literal "0x103101")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,\n                  (char *)(unaff_EDI + 0x103101))" (( "(") (cast_expression "(char *)(unaff_EDI + 0xed40d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xed40d)" (( "(") (binary_expression "unaff_EDI + 0xed40d" (identifier "unaff_EDI") (+ "+") (number_literal "0xed40d")) () ")"))) (, ",") (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" (& "&") (identifier "UNK_00102ffb")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "0xbe") (, ",") (cast_expression "(char *)(unaff_EDI + 0x103101)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x103101)" (( "(") (binary_expression "unaff_EDI + 0x103101" (identifier "unaff_EDI") (+ "+") (number_literal "0x103101")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x3344) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_2 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x3344)" (* "*") (cast_expression "(int *)(param_2 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3344)" (( "(") (binary_expression "param_2 + 0x3344" (identifier "param_2") (+ "+") (number_literal "0x3344")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,\n                  (char *)(unaff_EDI + 0x103101))" (( "(") (cast_expression "(char *)(unaff_EDI + 0xdfbd1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdfbd1)" (( "(") (binary_expression "unaff_EDI + 0xdfbd1" (identifier "unaff_EDI") (+ "+") (number_literal "0xdfbd1")) () ")"))) (, ",") (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" (& "&") (identifier "UNK_00102ffb")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "0xbf") (, ",") (cast_expression "(char *)(unaff_EDI + 0x103101)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x103101)" (( "(") (binary_expression "unaff_EDI + 0x103101" (identifier "unaff_EDI") (+ "+") (number_literal "0x103101")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x3328) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x3328) != 0" (pointer_expression "*(int *)(param_2 + 0x3328)" (* "*") (cast_expression "(int *)(param_2 + 0x3328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3328)" (( "(") (binary_expression "param_2 + 0x3328" (identifier "param_2") (+ "+") (number_literal "0x3328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);" (call_expression "LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318)" (identifier "LogMagickEvent") (argument_list "(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,\n                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" (& "&") (identifier "UNK_00102ffb")) (+ "+") (identifier "unaff_EDI")) (, ",") (binary_expression "unaff_EDI + 0x1030f1" (identifier "unaff_EDI") (+ "+") (number_literal "0x1030f1")) (, ",") (number_literal "0xc1") (, ",") (binary_expression "&UNK_000eccc7 + unaff_EDI" (pointer_expression "&UNK_000eccc7" (& "&") (identifier "UNK_000eccc7")) (+ "+") (identifier "unaff_EDI")) (, ",") (binary_expression "param_2 + 0x318" (identifier "param_2") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 == 0) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,\n                  (char *)(unaff_EDI + 0x103101))" (( "(") (cast_expression "(char *)(unaff_EDI + 0xd52fd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd52fd)" (( "(") (binary_expression "unaff_EDI + 0xd52fd" (identifier "unaff_EDI") (+ "+") (number_literal "0xd52fd")) () ")"))) (, ",") (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" (& "&") (identifier "UNK_00102ffb")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "0xc2") (, ",") (cast_expression "(char *)(unaff_EDI + 0x103101)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x103101)" (( "(") (binary_expression "unaff_EDI + 0x103101" (identifier "unaff_EDI") (+ "+") (number_literal "0x103101")) () ")"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_3 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_3 + 0x1c)" (* "*") (cast_expression "(int *)(param_3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));\n  }" ({ "{") (expression_statement "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101));" (call_expression "__assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,\n                  (char *)(unaff_EDI + 0x103101))" (( "(") (cast_expression "(char *)(unaff_EDI + 0xd60ed)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd60ed)" (( "(") (binary_expression "unaff_EDI + 0xd60ed" (identifier "unaff_EDI") (+ "+") (number_literal "0xd60ed")) () ")"))) (, ",") (binary_expression "&UNK_00102ffb + unaff_EDI" (pointer_expression "&UNK_00102ffb" (& "&") (identifier "UNK_00102ffb")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "0xc3") (, ",") (cast_expression "(char *)(unaff_EDI + 0x103101)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x103101)" (( "(") (binary_expression "unaff_EDI + 0x103101" (identifier "unaff_EDI") (+ "+") (number_literal "0x103101")) () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar10 = OpenBlob();" (assignment_expression "iVar10 = OpenBlob()" (identifier "iVar10") (= "=") (call_expression "OpenBlob()" (identifier "OpenBlob") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    WriteBlobString();\n    puVar11 = (undefined1 *)GetImageProperty();\n    if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }\n    iVar10 = unaff_EDI + 0x10301d;\n    FormatLocaleString();\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);\n    puVar16 = local_2020;\n    WriteBlobString();\n    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);\n    WriteBlobString();\n    FormatLocaleString();\n    WriteBlobString();\n    WriteBlobString();\n    iVar10 = param_3;\n    TransformImageColorspace();\n    if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }\n    WriteBlobString();\n    WriteBlobString();\n    CloseBlob();\n    iVar10 = 1;\n  }" ({ "{") (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar11 = (undefined1 *)GetImageProperty();" (assignment_expression "puVar11 = (undefined1 *)GetImageProperty()" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)GetImageProperty()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetImageProperty()" (identifier "GetImageProperty") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (puVar11 == (undefined1 *)0x0) {\n      puVar11 = local_1020;\n      GetPathComponent();\n    }" (if "if") (parenthesized_expression "(puVar11 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined1 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar11 = local_1020;\n      GetPathComponent();\n    }" ({ "{") (expression_statement "puVar11 = local_1020;" (assignment_expression "puVar11 = local_1020" (identifier "puVar11") (= "=") (identifier "local_1020")) (; ";")) (expression_statement "GetPathComponent();" (call_expression "GetPathComponent()" (identifier "GetPathComponent") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar10 = unaff_EDI + 0x10301d;" (assignment_expression "iVar10 = unaff_EDI + 0x10301d" (identifier "iVar10") (= "=") (binary_expression "unaff_EDI + 0x10301d" (identifier "unaff_EDI") (+ "+") (number_literal "0x10301d"))) (; ";")) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" (identifier "FormatLocaleString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" (identifier "puVar16") (= "=") (identifier "local_2020")) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11)" (identifier "FormatLocaleString") (argument_list "(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),\n                       puVar16,iVar10,puVar11)" (( "(") (identifier "local_2020") (, ",") (number_literal "0x1000") (, ",") (binary_expression "unaff_EDI + 0x103030" (identifier "unaff_EDI") (+ "+") (number_literal "0x103030")) (, ",") (cast_expression "(double)*(int *)(param_2 + 0x208)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_2 + 0x208)" (* "*") (cast_expression "(int *)(param_2 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x208)" (( "(") (binary_expression "param_2 + 0x208" (identifier "param_2") (+ "+") (number_literal "0x208")) () ")"))))) (, ",") (identifier "puVar16") (, ",") (identifier "iVar10") (, ",") (identifier "puVar11") () ")"))) (; ";")) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" (identifier "puVar16") (= "=") (identifier "local_2020")) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16)" (identifier "FormatLocaleString") (argument_list "(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),\n                       puVar16)" (( "(") (identifier "local_2020") (, ",") (number_literal "0x1000") (, ",") (binary_expression "unaff_EDI + 0x10304e" (identifier "unaff_EDI") (+ "+") (number_literal "0x10304e")) (, ",") (cast_expression "(double)*(int *)(param_2 + 0x20c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_2 + 0x20c)" (* "*") (cast_expression "(int *)(param_2 + 0x20c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20c)" (( "(") (binary_expression "param_2 + 0x20c" (identifier "param_2") (+ "+") (number_literal "0x20c")) () ")"))))) (, ",") (identifier "puVar16") () ")"))) (; ";")) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" (identifier "puVar16") (= "=") (identifier "local_2020")) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16)" (identifier "FormatLocaleString") (argument_list "(local_2020,0x1000,&UNK_0010306c + unaff_EDI,\n                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16)" (( "(") (identifier "local_2020") (, ",") (number_literal "0x1000") (, ",") (binary_expression "&UNK_0010306c + unaff_EDI" (pointer_expression "&UNK_0010306c" (& "&") (identifier "UNK_0010306c")) (+ "+") (identifier "unaff_EDI")) (, ",") (cast_expression "(double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe)" (( "(") (binary_expression "*(int *)(param_2 + 0x18) + 1U & 0xfffffffe" (binary_expression "*(int *)(param_2 + 0x18) + 1U" (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "1U")) (& "&") (number_literal "0xfffffffe")) () ")"))) (, ",") (identifier "puVar16") () ")"))) (; ";")) (expression_statement "puVar16 = local_2020;" (assignment_expression "puVar16 = local_2020" (identifier "puVar16") (= "=") (identifier "local_2020")) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16);" (call_expression "FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16)" (identifier "FormatLocaleString") (argument_list "(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),\n                       puVar16)" (( "(") (identifier "local_2020") (, ",") (number_literal "0x1000") (, ",") (binary_expression "unaff_EDI + 0x103082" (identifier "unaff_EDI") (+ "+") (number_literal "0x103082")) (, ",") (cast_expression "(double)*(uint *)(param_2 + 0x1c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(uint *)(param_2 + 0x1c)" (* "*") (cast_expression "(uint *)(param_2 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (identifier "puVar16") () ")"))) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" (identifier "FormatLocaleString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = param_3;" (assignment_expression "iVar10 = param_3" (identifier "iVar10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "TransformImageColorspace();" (call_expression "TransformImageColorspace()" (identifier "TransformImageColorspace") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (0 < *(int *)(param_2 + 0x1c)) {\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }" (if "if") (parenthesized_expression "(0 < *(int *)(param_2 + 0x1c))" (( "(") (binary_expression "0 < *(int *)(param_2 + 0x1c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n      local_204c = 0;\n      local_2048 = 0;\n      local_2050 = 0;\n      do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));\n    }" ({ "{") (expression_statement "local_204c = 0;" (assignment_expression "local_204c = 0" (identifier "local_204c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2048 = 0;" (assignment_expression "local_2048 = 0" (identifier "local_2048") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2050 = 0;" (assignment_expression "local_2050 = 0" (identifier "local_2050") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      } while (local_2050 < *(int *)(param_2 + 0x1c));" (do "do") (compound_statement "{\n        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);\n        if (local_2074 == 0) break;\n        uVar14 = *(uint *)(param_2 + 0x18);\n        if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }\n        if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }\n        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);\n        if (iVar13 == 0) break;\n        local_2050 = local_2050 + 1;\n        bVar15 = 0xfffffffe < local_204c;\n        local_204c = local_204c + 1;\n        local_2048 = local_2048 + (uint)bVar15;\n      }" ({ "{") (expression_statement "local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10);" (assignment_expression "local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" (identifier "local_2074") (= "=") (call_expression "GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" (identifier "GetVirtualPixels") (argument_list "(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3\n                                      ,iVar10)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "local_2050") (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "param_3") (, ",") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (local_2074 == 0) break;" (if "if") (parenthesized_expression "(local_2074 == 0)" (( "(") (binary_expression "local_2074 == 0" (identifier "local_2074") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar14 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar14 = *(uint *)(param_2 + 0x18)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(param_2 + 0x18)" (* "*") (cast_expression "(uint *)(param_2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((int)uVar14 < 4) {\n          local_206c = 0;\n        }\n        else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" (if "if") (parenthesized_expression "((int)uVar14 < 4)" (( "(") (binary_expression "(int)uVar14 < 4" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n          local_206c = 0;\n        }" ({ "{") (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" (identifier "local_206c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" (else "else") (compound_statement "{\n          iVar13 = *(int *)(param_2 + 0x298);\n          local_206c = 0;\n          do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));\n        }" ({ "{") (expression_statement "iVar13 = *(int *)(param_2 + 0x298);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x298)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_2 + 0x298)" (* "*") (cast_expression "(int *)(param_2 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x298)" (( "(") (binary_expression "param_2 + 0x298" (identifier "param_2") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "local_206c = 0;" (assignment_expression "local_206c = 0" (identifier "local_206c") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          } while ((int)local_206c < (int)(uVar14 - 3));" (do "do") (compound_statement "{\n            fVar3 = *(float *)(unaff_EDI + 0xe8281);\n            iVar10 = local_2074 + iVar13 * 0x18;\n            iVar8 = *(int *)(param_2 + 0x2a8);\n            iVar1 = iVar10 + iVar13 * -8;\n            iVar12 = iVar13 * -8 + iVar1;\n            iVar13 = *(int *)(iVar8 + 8);\n            iVar9 = *(int *)(iVar8 + 0x14);\n            iVar8 = *(int *)(iVar8 + 0x20);\n            fVar4 = *(float *)(unaff_EDI + 0xe827d);\n            fVar5 = *(float *)(unaff_EDI + 0xe8285);\n            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);\n            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);\n            local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            iVar10 = local_2044 << 6;\n            local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);\n            local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);\n            puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);\n            iVar10 = unaff_EDI + 0xff179;\n            FormatLocaleString();\n            WriteBlobString();\n            iVar13 = *(int *)(param_2 + 0x298);\n            local_206c = local_206c + 4;\n            local_2074 = local_2074 + iVar13 * 8;\n            uVar14 = *(uint *)(param_2 + 0x18);\n          }" ({ "{") (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xe8281);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xe8281)" (identifier "fVar3") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8281)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8281)" (( "(") (binary_expression "unaff_EDI + 0xe8281" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8281")) () ")"))))) (; ";")) (expression_statement "iVar10 = local_2074 + iVar13 * 0x18;" (assignment_expression "iVar10 = local_2074 + iVar13 * 0x18" (identifier "iVar10") (= "=") (binary_expression "local_2074 + iVar13 * 0x18" (identifier "local_2074") (+ "+") (binary_expression "iVar13 * 0x18" (identifier "iVar13") (* "*") (number_literal "0x18")))) (; ";")) (expression_statement "iVar8 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar8 = *(int *)(param_2 + 0x2a8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_2 + 0x2a8)" (* "*") (cast_expression "(int *)(param_2 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2a8)" (( "(") (binary_expression "param_2 + 0x2a8" (identifier "param_2") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "iVar1 = iVar10 + iVar13 * -8;" (assignment_expression "iVar1 = iVar10 + iVar13 * -8" (identifier "iVar1") (= "=") (binary_expression "iVar10 + iVar13 * -8" (identifier "iVar10") (+ "+") (binary_expression "iVar13 * -8" (identifier "iVar13") (* "*") (number_literal "-8")))) (; ";")) (expression_statement "iVar12 = iVar13 * -8 + iVar1;" (assignment_expression "iVar12 = iVar13 * -8 + iVar1" (identifier "iVar12") (= "=") (binary_expression "iVar13 * -8 + iVar1" (binary_expression "iVar13 * -8" (identifier "iVar13") (* "*") (number_literal "-8")) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "iVar13 = *(int *)(iVar8 + 8);" (assignment_expression "iVar13 = *(int *)(iVar8 + 8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar8 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar8 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar8 + 0x14)" (* "*") (cast_expression "(int *)(iVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar8 + 0x20);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x20)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 0x20)" (* "*") (cast_expression "(int *)(iVar8 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "fVar4 = *(float *)(unaff_EDI + 0xe827d);" (assignment_expression "fVar4 = *(float *)(unaff_EDI + 0xe827d)" (identifier "fVar4") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe827d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe827d)" (( "(") (binary_expression "unaff_EDI + 0xe827d" (identifier "unaff_EDI") (+ "+") (number_literal "0xe827d")) () ")"))))) (; ";")) (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xe8285);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xe8285)" (identifier "fVar5") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8285)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8285)" (( "(") (binary_expression "unaff_EDI + 0xe8285" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8285")) () ")"))))) (; ";")) (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xdf3f1);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xdf3f1)" (identifier "fVar6") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf3f1)" (( "(") (binary_expression "unaff_EDI + 0xdf3f1" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf3f1")) () ")"))))) (; ";")) (expression_statement "fVar7 = *(float *)(unaff_EDI + 0xd4fc1);" (assignment_expression "fVar7 = *(float *)(unaff_EDI + 0xd4fc1)" (identifier "fVar7") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd4fc1)" (( "(") (binary_expression "unaff_EDI + 0xd4fc1" (identifier "unaff_EDI") (+ "+") (number_literal "0xd4fc1")) () ")"))))) (; ";")) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (identifier "local_2044") (= "=") (cast_expression "(uint)(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (identifier "ROUND") (argument_list "((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (( "(") (binary_expression "(((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7" (parenthesized_expression "(((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6)" (( "(") (binary_expression "((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6" (parenthesized_expression "((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3)" (( "(") (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3" (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4" (binary_expression "(float)*(double *)(iVar10 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(iVar10 + iVar8 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + iVar8 * 8)" (* "*") (cast_expression "(double *)(iVar10 + iVar8 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar8 * 8)" (( "(") (binary_expression "iVar10 + iVar8 * 8" (identifier "iVar10") (+ "+") (binary_expression "iVar8 * 8" (identifier "iVar8") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar5")) (+ "+") (binary_expression "(float)*(double *)(iVar10 + iVar9 * 8) * fVar4" (cast_expression "(float)*(double *)(iVar10 + iVar9 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + iVar9 * 8)" (* "*") (cast_expression "(double *)(iVar10 + iVar9 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar9 * 8)" (( "(") (binary_expression "iVar10 + iVar9 * 8" (identifier "iVar10") (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar4"))) (+ "+") (binary_expression "(float)*(double *)(iVar10 + iVar13 * 8) * fVar3" (cast_expression "(float)*(double *)(iVar10 + iVar13 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + iVar13 * 8)" (* "*") (cast_expression "(double *)(iVar10 + iVar13 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + iVar13 * 8)" (( "(") (binary_expression "iVar10 + iVar13 * 8" (identifier "iVar10") (+ "+") (binary_expression "iVar13 * 8" (identifier "iVar13") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar3"))) () ")")) (* "*") (identifier "fVar6")) () ")")) (/ "/") (identifier "fVar7")) () ")")))))) (; ";")) (expression_statement "iVar10 = local_2044 << 6;" (assignment_expression "iVar10 = local_2044 << 6" (identifier "iVar10") (= "=") (binary_expression "local_2044 << 6" (identifier "local_2044") (<< "<<") (number_literal "6"))) (; ";")) (expression_statement "local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2064 = (uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (identifier "local_2064") (= "=") (cast_expression "(uint)(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (identifier "ROUND") (argument_list "((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7)" (( "(") (binary_expression "(((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /\n                                     fVar7" (parenthesized_expression "(((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6)" (( "(") (binary_expression "((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6" (parenthesized_expression "((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3)" (( "(") (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +\n                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3" (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +\n                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4" (binary_expression "(float)*(double *)(iVar1 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(iVar1 + iVar8 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar1 + iVar8 * 8)" (* "*") (cast_expression "(double *)(iVar1 + iVar8 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + iVar8 * 8)" (( "(") (binary_expression "iVar1 + iVar8 * 8" (identifier "iVar1") (+ "+") (binary_expression "iVar8 * 8" (identifier "iVar8") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar5")) (+ "+") (binary_expression "(float)*(double *)(iVar1 + iVar9 * 8) * fVar4" (cast_expression "(float)*(double *)(iVar1 + iVar9 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar1 + iVar9 * 8)" (* "*") (cast_expression "(double *)(iVar1 + iVar9 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + iVar9 * 8)" (( "(") (binary_expression "iVar1 + iVar9 * 8" (identifier "iVar1") (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar4"))) (+ "+") (binary_expression "(float)*(double *)(iVar1 + iVar13 * 8) * fVar3" (cast_expression "(float)*(double *)(iVar1 + iVar13 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar1 + iVar13 * 8)" (* "*") (cast_expression "(double *)(iVar1 + iVar13 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + iVar13 * 8)" (( "(") (binary_expression "iVar1 + iVar13 * 8" (identifier "iVar1") (+ "+") (binary_expression "iVar13 * 8" (identifier "iVar13") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar3"))) () ")")) (* "*") (identifier "fVar6")) () ")")) (/ "/") (identifier "fVar7")) () ")")))))) (; ";")) (expression_statement "local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7);" (assignment_expression "local_2044 = (uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" (identifier "local_2044") (= "=") (cast_expression "(uint)(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" (identifier "ROUND") (argument_list "(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7)" (( "(") (binary_expression "((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /\n                                     fVar7" (parenthesized_expression "((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6)" (( "(") (binary_expression "(fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6" (parenthesized_expression "(fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8))" (( "(") (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +\n                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)" (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +\n                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8)" (binary_expression "fVar5 * (float)*(double *)(iVar12 + iVar8 * 8)" (identifier "fVar5") (* "*") (cast_expression "(float)*(double *)(iVar12 + iVar8 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar12 + iVar8 * 8)" (* "*") (cast_expression "(double *)(iVar12 + iVar8 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + iVar8 * 8)" (( "(") (binary_expression "iVar12 + iVar8 * 8" (identifier "iVar12") (+ "+") (binary_expression "iVar8 * 8" (identifier "iVar8") (* "*") (number_literal "8"))) () ")")))))) (+ "+") (binary_expression "fVar4 * (float)*(double *)(iVar12 + iVar9 * 8)" (identifier "fVar4") (* "*") (cast_expression "(float)*(double *)(iVar12 + iVar9 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar12 + iVar9 * 8)" (* "*") (cast_expression "(double *)(iVar12 + iVar9 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + iVar9 * 8)" (( "(") (binary_expression "iVar12 + iVar9 * 8" (identifier "iVar12") (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) () ")"))))))) (+ "+") (binary_expression "fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)" (identifier "fVar3") (* "*") (cast_expression "(float)*(double *)(iVar12 + iVar13 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar12 + iVar13 * 8)" (* "*") (cast_expression "(double *)(iVar12 + iVar13 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + iVar13 * 8)" (( "(") (binary_expression "iVar12 + iVar13 * 8" (identifier "iVar12") (+ "+") (binary_expression "iVar13 * 8" (identifier "iVar13") (* "*") (number_literal "8"))) () ")"))))))) () ")")) (* "*") (identifier "fVar6")) () ")")) (/ "/") (identifier "fVar7")) () ")")))))) (; ";")) (expression_statement "puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);" (assignment_expression "puVar11 = (undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)\n                      ((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2)" (( "(") (binary_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2" (binary_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |\n                       (local_2064 & 3) << 4" (call_expression "(uint)(byte)((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "((byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10)" (( "(") (binary_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10" (binary_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7) & 3" (cast_expression "(byte)(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(longlong)\n                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" (identifier "ROUND") (argument_list "((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7)" (( "(") (binary_expression "(((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6) / fVar7" (parenthesized_expression "(((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6)" (( "(") (binary_expression "((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 ) * fVar6" (parenthesized_expression "((float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)\n                                                 )" (( "(") (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4 + fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5\n                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4" (binary_expression "(float)*(double *)(local_2074 + iVar8 * 8) * fVar5" (cast_expression "(float)*(double *)(local_2074 + iVar8 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_2074 + iVar8 * 8)" (* "*") (cast_expression "(double *)(local_2074 + iVar8 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + iVar8 * 8)" (( "(") (binary_expression "local_2074 + iVar8 * 8" (identifier "local_2074") (+ "+") (binary_expression "iVar8 * 8" (identifier "iVar8") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar5")) (+ "+") (binary_expression "(float)*(double *)(local_2074 + iVar9 * 8) *\n                                                   fVar4" (cast_expression "(float)*(double *)(local_2074 + iVar9 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_2074 + iVar9 * 8)" (* "*") (cast_expression "(double *)(local_2074 + iVar9 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + iVar9 * 8)" (( "(") (binary_expression "local_2074 + iVar9 * 8" (identifier "local_2074") (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) () ")"))))) (* "*") (identifier "fVar4"))) (+ "+") (binary_expression "fVar3 * (float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" (identifier "fVar3") (* "*") (cast_expression "(float)*(double *)\n                                                                           (local_2074 + iVar13 * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                                                           (local_2074 + iVar13 * 8)" (* "*") (cast_expression "(double *)\n                                                                           (local_2074 + iVar13 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + iVar13 * 8)" (( "(") (binary_expression "local_2074 + iVar13 * 8" (identifier "local_2074") (+ "+") (binary_expression "iVar13 * 8" (identifier "iVar13") (* "*") (number_literal "8"))) () ")"))))))) () ")")) (* "*") (identifier "fVar6")) () ")")) (/ "/") (identifier "fVar7")) () ")"))))) (& "&") (number_literal "3")) (| "|") (cast_expression "(byte)iVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar10"))) () ")"))) (| "|") (binary_expression "(local_2064 & 3) << 4" (parenthesized_expression "(local_2064 & 3)" (( "(") (binary_expression "local_2064 & 3" (identifier "local_2064") (& "&") (number_literal "3")) () ")")) (<< "<<") (number_literal "4"))) (| "|") (binary_expression "(local_2044 & 3) << 2" (parenthesized_expression "(local_2044 & 3)" (( "(") (binary_expression "local_2044 & 3" (identifier "local_2044") (& "&") (number_literal "3")) () ")")) (<< "<<") (number_literal "2"))) () ")")))) (; ";")) (expression_statement "iVar10 = unaff_EDI + 0xff179;" (assignment_expression "iVar10 = unaff_EDI + 0xff179" (identifier "iVar10") (= "=") (binary_expression "unaff_EDI + 0xff179" (identifier "unaff_EDI") (+ "+") (number_literal "0xff179"))) (; ";")) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" (identifier "FormatLocaleString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar13 = *(int *)(param_2 + 0x298);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x298)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_2 + 0x298)" (* "*") (cast_expression "(int *)(param_2 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x298)" (( "(") (binary_expression "param_2 + 0x298" (identifier "param_2") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "local_206c = local_206c + 4;" (assignment_expression "local_206c = local_206c + 4" (identifier "local_206c") (= "=") (binary_expression "local_206c + 4" (identifier "local_206c") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "local_2074 = local_2074 + iVar13 * 8;" (assignment_expression "local_2074 = local_2074 + iVar13 * 8" (identifier "local_2074") (= "=") (binary_expression "local_2074 + iVar13 * 8" (identifier "local_2074") (+ "+") (binary_expression "iVar13 * 8" (identifier "iVar13") (* "*") (number_literal "8")))) (; ";")) (expression_statement "uVar14 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar14 = *(uint *)(param_2 + 0x18)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(param_2 + 0x18)" (* "*") (cast_expression "(uint *)(param_2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_206c < (int)(uVar14 - 3))" (( "(") (binary_expression "(int)local_206c < (int)(uVar14 - 3)" (cast_expression "(int)local_206c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_206c")) (< "<") (cast_expression "(int)(uVar14 - 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar14 - 3)" (( "(") (binary_expression "uVar14 - 3" (identifier "uVar14") (- "-") (number_literal "3")) () ")")))) () ")")) (; ";")) (} "}")))) (if_statement "if ((uVar14 & 3) != 0) {\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }" (if "if") (parenthesized_expression "((uVar14 & 3) != 0)" (( "(") (binary_expression "(uVar14 & 3) != 0" (parenthesized_expression "(uVar14 & 3)" (( "(") (binary_expression "uVar14 & 3" (identifier "uVar14") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }\n          iVar10 = unaff_EDI + 0xff179;\n          FormatLocaleString();\n          WriteBlobString();\n        }" ({ "{") (if_statement "if ((int)local_206c < (int)uVar14) {\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }\n          else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }" (if "if") (parenthesized_expression "((int)local_206c < (int)uVar14)" (( "(") (binary_expression "(int)local_206c < (int)uVar14" (cast_expression "(int)local_206c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_206c")) (< "<") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) () ")")) (compound_statement "{\n            bVar2 = 0;\n            do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);\nLAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;\n          }" ({ "{") (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" (identifier "bVar2") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            } while (local_206c != uVar14);" (do "do") (compound_statement "{\n              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }\n              if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }\n              if (iVar10 != 0) goto LAB_0020ae35;\n              iVar10 = *(int *)(param_2 + 0x2a8);\n              local_206c = local_206c + 1;\n              local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));\n              bVar2 = bVar2 | (byte)(local_2044 << 6);\n            }" ({ "{") (while_statement "while (iVar10 = (int)local_206c % 4, iVar10 == 1) {\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }" (while "while") (parenthesized_expression "(iVar10 = (int)local_206c % 4, iVar10 == 1)" (( "(") (comma_expression "iVar10 = (int)local_206c % 4, iVar10 == 1" (assignment_expression "iVar10 = (int)local_206c % 4" (identifier "iVar10") (= "=") (binary_expression "(int)local_206c % 4" (cast_expression "(int)local_206c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_206c")) (% "%") (number_literal "4"))) (, ",") (binary_expression "iVar10 == 1" (identifier "iVar10") (== "==") (number_literal "1"))) () ")")) (compound_statement "{\n                iVar13 = *(int *)(param_2 + 0x2a8);\n                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));\n                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;\nLAB_0020ae35:\n                local_206c = local_206c + 1;\n                if (local_206c == uVar14) goto LAB_0020aee2;\n              }" ({ "{") (expression_statement "iVar13 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x2a8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_2 + 0x2a8)" (* "*") (cast_expression "(int *)(param_2 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2a8)" (( "(") (binary_expression "param_2 + 0x2a8" (identifier "param_2") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;" (assignment_expression "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8" (identifier "iVar10") (= "=") (binary_expression "local_2074 + *(int *)(param_2 + 0x298) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(param_2 + 0x298) * 8" (pointer_expression "*(int *)(param_2 + 0x298)" (* "*") (cast_expression "(int *)(param_2 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x298)" (( "(") (binary_expression "param_2 + 0x298" (identifier "param_2") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" (identifier "local_2044") (= "=") (cast_expression "(uint)(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" (identifier "ROUND") (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)) /\n                                         *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1))" (( "(") (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                         *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281))" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)\n                                          + *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8285)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8285)" (( "(") (binary_expression "unaff_EDI + 0xe8285" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8285")) () ")")))) (* "*") (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (* "*") (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 8" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" (* "*") (cast_expression "(int *)(iVar13 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (+ "+") (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe827d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe827d)" (( "(") (binary_expression "unaff_EDI + 0xe827d" (identifier "unaff_EDI") (+ "+") (number_literal "0xe827d")) () ")")))) (* "*") (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 8" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" (* "*") (cast_expression "(int *)(iVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (+ "+") (binary_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" (* "*") (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 8)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 8" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8281)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8281)" (( "(") (binary_expression "unaff_EDI + 0xe8281" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8281")) () ")")))))) () ")")) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf3f1)" (( "(") (binary_expression "unaff_EDI + 0xdf3f1" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf3f1")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd4fc1)" (( "(") (binary_expression "unaff_EDI + 0xd4fc1" (identifier "unaff_EDI") (+ "+") (number_literal "0xd4fc1")) () ")"))))) () ")")))))) (; ";")) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30" (identifier "bVar2") (= "=") (binary_expression "bVar2 | (byte)(local_2044 << 4) & 0x30" (identifier "bVar2") (| "|") (binary_expression "(byte)(local_2044 << 4) & 0x30" (call_expression "(byte)(local_2044 << 4)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_2044 << 4)" (( "(") (binary_expression "local_2044 << 4" (identifier "local_2044") (<< "<<") (number_literal "4")) () ")"))) (& "&") (number_literal "0x30")))) (; ";")) (labeled_statement "LAB_0020ae35:\n                local_206c = local_206c + 1;" (statement_identifier "LAB_0020ae35") (: ":") (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" (identifier "local_206c") (= "=") (binary_expression "local_206c + 1" (identifier "local_206c") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (local_206c == uVar14) goto LAB_0020aee2;" (if "if") (parenthesized_expression "(local_206c == uVar14)" (( "(") (binary_expression "local_206c == uVar14" (identifier "local_206c") (== "==") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_0020aee2;" (goto "goto") (statement_identifier "LAB_0020aee2") (; ";"))) (} "}"))) (if_statement "if (1 < iVar10) {\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" (if "if") (parenthesized_expression "(1 < iVar10)" (( "(") (binary_expression "1 < iVar10" (number_literal "1") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n                if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }\n                goto LAB_0020ae35;\n              }" ({ "{") (if_statement "if (iVar10 == 2) {\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }\n                else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" (if "if") (parenthesized_expression "(iVar10 == 2)" (( "(") (binary_expression "iVar10 == 2" (identifier "iVar10") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                  iVar13 = *(int *)(param_2 + 0x2a8);\n                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;\n                  local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));\n                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;\n                }" ({ "{") (expression_statement "iVar13 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x2a8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_2 + 0x2a8)" (* "*") (cast_expression "(int *)(param_2 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2a8)" (( "(") (binary_expression "param_2 + 0x2a8" (identifier "param_2") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;" (assignment_expression "iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8" (identifier "iVar10") (= "=") (binary_expression "local_2074 + *(int *)(param_2 + 0x298) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(param_2 + 0x298) * 8" (pointer_expression "*(int *)(param_2 + 0x298)" (* "*") (cast_expression "(int *)(param_2 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x298)" (( "(") (binary_expression "param_2 + 0x298" (identifier "param_2") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" (identifier "local_2044") (= "=") (cast_expression "(uint)(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" (identifier "ROUND") (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)) /\n                                           *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1))" (( "(") (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)) *\n                                           *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281))" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)\n                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +\n                                            *(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                             (float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8285)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8285)" (( "(") (binary_expression "unaff_EDI + 0xe8285" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8285")) () ")")))) (* "*") (cast_expression "(float)*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" (* "*") (cast_expression "(double *)\n                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 0x20) * 8" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" (* "*") (cast_expression "(int *)(iVar13 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (+ "+") (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe827d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe827d)" (( "(") (binary_expression "unaff_EDI + 0xe827d" (identifier "unaff_EDI") (+ "+") (number_literal "0xe827d")) () ")")))) (* "*") (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 0x14) * 8" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" (* "*") (cast_expression "(int *)(iVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (+ "+") (binary_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)\n                                              * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" (* "*") (cast_expression "(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 8) * 8)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 8) * 8" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8281)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8281)" (( "(") (binary_expression "unaff_EDI + 0xe8281" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8281")) () ")")))))) () ")")) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf3f1)" (( "(") (binary_expression "unaff_EDI + 0xdf3f1" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf3f1")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd4fc1)" (( "(") (binary_expression "unaff_EDI + 0xd4fc1" (identifier "unaff_EDI") (+ "+") (number_literal "0xd4fc1")) () ")"))))) () ")")))))) (; ";")) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc" (identifier "bVar2") (= "=") (binary_expression "bVar2 | (byte)(local_2044 << 2) & 0xc" (identifier "bVar2") (| "|") (binary_expression "(byte)(local_2044 << 2) & 0xc" (call_expression "(byte)(local_2044 << 2)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_2044 << 2)" (( "(") (binary_expression "local_2044 << 2" (identifier "local_2044") (<< "<<") (number_literal "2")) () ")"))) (& "&") (number_literal "0xc")))) (; ";")) (} "}")) (else_clause "else if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" (else "else") (if_statement "if (iVar10 == 3) {\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" (if "if") (parenthesized_expression "(iVar10 == 3)" (( "(") (binary_expression "iVar10 == 3" (identifier "iVar10") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                  iVar10 = *(int *)(param_2 + 0x2a8);\n                  bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;\n                }" ({ "{") (expression_statement "iVar10 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar10 = *(int *)(param_2 + 0x2a8)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_2 + 0x2a8)" (* "*") (cast_expression "(int *)(param_2 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2a8)" (( "(") (binary_expression "param_2 + 0x2a8" (identifier "param_2") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;" (assignment_expression "bVar2 = bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" (identifier "bVar2") (= "=") (binary_expression "bVar2 | (byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" (identifier "bVar2") (| "|") (binary_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3" (cast_expression "(byte)(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(longlong)\n                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" (identifier "ROUND") (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)) /\n                                              *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1))" (( "(") (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)) *\n                                              *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281))" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                               *(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                                (float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8285)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8285)" (( "(") (binary_expression "unaff_EDI + 0xe8285" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8285")) () ")")))) (* "*") (cast_expression "(float)*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (* "*") (cast_expression "(double *)\n                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x20) * 8)" (( "(") (binary_expression "local_2074 + *(int *)(iVar10 + 0x20) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(iVar10 + 0x20) * 8" (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (+ "+") (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                               (float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe827d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe827d)" (( "(") (binary_expression "unaff_EDI + 0xe827d" (identifier "unaff_EDI") (+ "+") (number_literal "0xe827d")) () ")")))) (* "*") (cast_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (* "*") (cast_expression "(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (( "(") (binary_expression "local_2074 + *(int *)(iVar10 + 0x14) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(iVar10 + 0x14) * 8" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (+ "+") (binary_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *\n                                               *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" (* "*") (cast_expression "(double *)\n                                                       (local_2074 + *(int *)(iVar10 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 8) * 8)" (( "(") (binary_expression "local_2074 + *(int *)(iVar10 + 8) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(iVar10 + 8) * 8" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8281)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8281)" (( "(") (binary_expression "unaff_EDI + 0xe8281" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8281")) () ")")))))) () ")")) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf3f1)" (( "(") (binary_expression "unaff_EDI + 0xdf3f1" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf3f1")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd4fc1)" (( "(") (binary_expression "unaff_EDI + 0xd4fc1" (identifier "unaff_EDI") (+ "+") (number_literal "0xd4fc1")) () ")"))))) () ")"))))) (& "&") (number_literal "3")))) (; ";")) (} "}"))))) (goto_statement "goto LAB_0020ae35;" (goto "goto") (statement_identifier "LAB_0020ae35") (; ";")) (} "}"))) (if_statement "if (iVar10 != 0) goto LAB_0020ae35;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0020ae35;" (goto "goto") (statement_identifier "LAB_0020ae35") (; ";"))) (expression_statement "iVar10 = *(int *)(param_2 + 0x2a8);" (assignment_expression "iVar10 = *(int *)(param_2 + 0x2a8)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_2 + 0x2a8)" (* "*") (cast_expression "(int *)(param_2 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2a8)" (( "(") (binary_expression "param_2 + 0x2a8" (identifier "param_2") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "local_206c = local_206c + 1;" (assignment_expression "local_206c = local_206c + 1" (identifier "local_206c") (= "=") (binary_expression "local_206c + 1" (identifier "local_206c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1));" (assignment_expression "local_2044 = (uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" (identifier "local_2044") (= "=") (cast_expression "(uint)(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" (identifier "ROUND") (argument_list "(((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1))" (( "(") (binary_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)) /\n                                       *(float *)(unaff_EDI + 0xd4fc1)" (parenthesized_expression "((*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1))" (( "(") (binary_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)) *\n                                       *(float *)(unaff_EDI + 0xdf3f1)" (parenthesized_expression "(*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281))" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)\n                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +\n                                        *(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (binary_expression "*(float *)(unaff_EDI + 0xe8285) *\n                                         (float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe8285)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8285)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8285)" (( "(") (binary_expression "unaff_EDI + 0xe8285" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8285")) () ")")))) (* "*") (cast_expression "(float)*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (* "*") (cast_expression "(double *)\n                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x20) * 8)" (( "(") (binary_expression "local_2074 + *(int *)(iVar10 + 0x20) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(iVar10 + 0x20) * 8" (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (+ "+") (binary_expression "*(float *)(unaff_EDI + 0xe827d) *\n                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (pointer_expression "*(float *)(unaff_EDI + 0xe827d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe827d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe827d)" (( "(") (binary_expression "unaff_EDI + 0xe827d" (identifier "unaff_EDI") (+ "+") (number_literal "0xe827d")) () ")")))) (* "*") (cast_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 0x14) * 8)" (( "(") (binary_expression "local_2074 + *(int *)(iVar10 + 0x14) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(iVar10 + 0x14) * 8" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (+ "+") (binary_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)\n                                          * *(float *)(unaff_EDI + 0xe8281)" (cast_expression "(float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" (* "*") (cast_expression "(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2074 + *(int *)(iVar10 + 8) * 8)" (( "(") (binary_expression "local_2074 + *(int *)(iVar10 + 8) * 8" (identifier "local_2074") (+ "+") (binary_expression "*(int *)(iVar10 + 8) * 8" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xe8281)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xe8281)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xe8281)" (( "(") (binary_expression "unaff_EDI + 0xe8281" (identifier "unaff_EDI") (+ "+") (number_literal "0xe8281")) () ")")))))) () ")")) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xdf3f1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf3f1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf3f1)" (( "(") (binary_expression "unaff_EDI + 0xdf3f1" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf3f1")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xd4fc1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd4fc1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd4fc1)" (( "(") (binary_expression "unaff_EDI + 0xd4fc1" (identifier "unaff_EDI") (+ "+") (number_literal "0xd4fc1")) () ")"))))) () ")")))))) (; ";")) (expression_statement "bVar2 = bVar2 | (byte)(local_2044 << 6);" (assignment_expression "bVar2 = bVar2 | (byte)(local_2044 << 6)" (identifier "bVar2") (= "=") (binary_expression "bVar2 | (byte)(local_2044 << 6)" (identifier "bVar2") (| "|") (call_expression "(byte)(local_2044 << 6)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_2044 << 6)" (( "(") (binary_expression "local_2044 << 6" (identifier "local_2044") (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_206c != uVar14)" (( "(") (binary_expression "local_206c != uVar14" (identifier "local_206c") (!= "!=") (identifier "uVar14")) () ")")) (; ";")) (labeled_statement "LAB_0020aee2:\n            puVar11 = (undefined1 *)~(uint)bVar2;" (statement_identifier "LAB_0020aee2") (: ":") (expression_statement "puVar11 = (undefined1 *)~(uint)bVar2;" (assignment_expression "puVar11 = (undefined1 *)~(uint)bVar2" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)~(uint)bVar2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "~(uint)bVar2" (~ "~") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2"))))) (; ";"))) (} "}")) (else_clause "else {\n            puVar11 = (undefined1 *)0xffffffff;\n          }" (else "else") (compound_statement "{\n            puVar11 = (undefined1 *)0xffffffff;\n          }" ({ "{") (expression_statement "puVar11 = (undefined1 *)0xffffffff;" (assignment_expression "puVar11 = (undefined1 *)0xffffffff" (identifier "puVar11") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")))) (expression_statement "iVar10 = unaff_EDI + 0xff179;" (assignment_expression "iVar10 = unaff_EDI + 0xff179" (identifier "iVar10") (= "=") (binary_expression "unaff_EDI + 0xff179" (identifier "unaff_EDI") (+ "+") (number_literal "0xff179"))) (; ";")) (expression_statement "FormatLocaleString();" (call_expression "FormatLocaleString()" (identifier "FormatLocaleString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);" (assignment_expression "iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" (identifier "iVar13") (= "=") (call_expression "SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" (identifier "SetImageProgress") (argument_list "(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,\n                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11)" (( "(") (identifier "param_2") (, ",") (binary_expression "unaff_EDI + 0x10209f" (identifier "unaff_EDI") (+ "+") (number_literal "0x10209f")) (, ",") (identifier "local_204c") (, ",") (identifier "local_2048") (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (number_literal "0") (, ",") (identifier "iVar10") (, ",") (identifier "puVar11") () ")")))) (; ";")) (if_statement "if (iVar13 == 0) break;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_2050 = local_2050 + 1;" (assignment_expression "local_2050 = local_2050 + 1" (identifier "local_2050") (= "=") (binary_expression "local_2050 + 1" (identifier "local_2050") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar15 = 0xfffffffe < local_204c;" (assignment_expression "bVar15 = 0xfffffffe < local_204c" (identifier "bVar15") (= "=") (binary_expression "0xfffffffe < local_204c" (number_literal "0xfffffffe") (< "<") (identifier "local_204c"))) (; ";")) (expression_statement "local_204c = local_204c + 1;" (assignment_expression "local_204c = local_204c + 1" (identifier "local_204c") (= "=") (binary_expression "local_204c + 1" (identifier "local_204c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_2048 = local_2048 + (uint)bVar15;" (assignment_expression "local_2048 = local_2048 + (uint)bVar15" (identifier "local_2048") (= "=") (binary_expression "local_2048 + (uint)bVar15" (identifier "local_2048") (+ "+") (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_2050 < *(int *)(param_2 + 0x1c))" (( "(") (binary_expression "local_2050 < *(int *)(param_2 + 0x1c)" (identifier "local_2050") (< "<") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "WriteBlobString();" (call_expression "WriteBlobString()" (identifier "WriteBlobString") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "CloseBlob();" (call_expression "CloseBlob()" (identifier "CloseBlob") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_002decd0();\n  }" ({ "{") (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" (identifier "FUN_002decd0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 function_1(type_2 *var_3,type_3 *var_6,type_4 *var_9)

{
  type_5 var_35;
  float var_28;
  float var_26;
  float var_24;
  float var_29;
  float var_30;
  int var_42;
  type_6 *pPVar8;
  int var_25;
  int var_23;
  double dVar11;
  type_1 var_11;
  char *var_14;
  size_t var_22;
  int iVar14;
  int var_27;
  type_7 var_34;
  int var_5;
  int var_2;
  bool bVar17;
  type_8 *var_20;
  type_7 var_33;
  type_7 var_32;
  int var_38;
  type_7 var_39;
  int var_40;
  type_7 var_31;
  char buffer [4096];
  char basename [4096];
  
  var_1();
  var_42 = *(int *)(var_2 + 0x14);
  if (var_3 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_4((char *)(var_5 + 0xd4439),&UNK_00102ffb + var_5,0xbc,
                  (char *)(var_5 + 0x103101));
  }
  if (var_3->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_4((char *)(var_5 + 0xd4461),&UNK_00102ffb + var_5,0xbd,
                  (char *)(var_5 + 0x103101));
  }
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_4((char *)(var_5 + 0xed40d),&UNK_00102ffb + var_5,0xbe,
                  (char *)(var_5 + 0x103101));
  }
  if (var_6->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_4((char *)(var_5 + 0xdfbd1),&UNK_00102ffb + var_5,0xbf,
                  (char *)(var_5 + 0x103101));
  }
  if (var_6->debug != var_7) {
    var_8(TraceEvent,&UNK_00102ffb + var_5,(char *)(var_5 + 0x1030f1),0xc1,
                   (char *)(var_5 + 0xeccc7),var_6->filename);
  }
  if (var_9 == (type_4 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_4((char *)(var_5 + 0xd52fd),&UNK_00102ffb + var_5,0xc2,
                  (char *)(var_5 + 0x103101));
  }
  if (var_9->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_4((char *)(var_5 + 0xd60ed),&UNK_00102ffb + var_5,0xc3,
                  (char *)(var_5 + 0x103101));
  }
  var_11 = var_10(var_3,var_6,WriteBinaryBlobMode,var_9);
  if (var_11 != var_7) {
    var_12(var_6,(char *)(var_5 + 0x103008));
    var_14 = var_13(var_6,(char *)(var_5 + 0xf4682),var_9);
    if (var_14 == (char *)0x0) {
      var_14 = basename;
      var_15(var_6->filename,BasePath,var_14);
    }
    var_16(buffer,0x1000,(char *)(var_5 + 0x10301d),var_14);
    var_12(var_6,buffer);
    dVar11 = (double)(var_6->page).x;
    var_16(buffer,0x1000,(char *)(var_5 + 0x103030),var_17(dVar11,0),
                       (int)((type_9)dVar11 >> 0x20));
    var_12(var_6,buffer);
    dVar11 = (double)(var_6->page).y;
    var_16(buffer,0x1000,(char *)(var_5 + 0x10304e),var_17(dVar11,0),
                       (int)((type_9)dVar11 >> 0x20));
    var_12(var_6,buffer);
    dVar11 = (double)(var_6->columns + 1 & 0xfffffffe);
    var_16(buffer,0x1000,&UNK_0010306c + var_5,var_17(dVar11,0),
                       (int)((type_9)dVar11 >> 0x20));
    var_12(var_6,buffer);
    var_16(buffer,0x1000,(char *)(var_5 + 0x103082),var_17((double)var_6->rows,0),
                       (int)((type_9)(double)var_6->rows >> 0x20));
    var_12(var_6,buffer);
    var_16(buffer,0x1000,(char *)(var_5 + 0x10309a));
    var_12(var_6,buffer);
    var_12(var_6,(char *)(var_5 + 0x1030ac));
    var_18(var_6,sRGBColorspace,var_9);
    if (0 < (int)var_6->rows) {
      var_39 = 0;
      var_40 = 0;
      var_38 = 0;
      do {
        var_20 = var_19(var_6,0,var_38,var_6->columns,1,var_9);
        if (var_20 == (type_8 *)0x0) break;
        var_34 = var_6->columns;
        if ((int)var_34 < 4) {
          var_33 = 0;
        }
        else {
          var_22 = var_6->number_channels;
          var_33 = 0;
          do {
            var_28 = *(float *)(var_5 + 0xe8281);
            pPVar8 = var_6->channel_map;
            var_27 = pPVar8->offset;
            var_25 = pPVar8[1].offset;
            var_23 = pPVar8[2].offset;
            var_26 = *(float *)(var_5 + 0xe827d);
            var_24 = *(float *)(var_5 + 0xe8285);
            var_29 = *(float *)(var_5 + 0xdf3f1);
            var_30 = *(float *)(var_5 + 0xd4fc1);
            var_31 = (type_7)(type_10)
                               var_21((((float)var_20[var_22 * 3 + var_23] * var_24 +
                                      (float)var_20[var_22 * 3 + var_25] * var_26 +
                                      (float)var_20[var_22 * 3 + var_27] * var_28) * var_29) /
                                     var_30);
            iVar14 = var_31 << 6;
            var_32 = (type_7)(type_10)
                               var_21((((float)var_20[var_22 * 2 + var_23] * var_24 +
                                      (float)var_20[var_22 * 2 + var_25] * var_26 +
                                      (float)var_20[var_22 * 2 + var_27] * var_28) * var_29) /
                                     var_30);
            var_31 = (type_7)(type_10)
                               var_21(((var_24 * (float)var_20[var_22 + var_23] +
                                      var_26 * (float)var_20[var_22 + var_25] +
                                      var_28 * (float)var_20[var_22 + var_27]) * var_29) / var_30);
            var_16(buffer,0x1000,(char *)(var_5 + 0xff179),
                               (type_7)(type_5)((type_5)(type_10)
                                                  var_21((((float)var_20[var_23] * var_24 +
                                                         (float)var_20[var_25] * var_26 +
                                                         var_28 * (float)var_20[var_27]) * var_29)
                                                        / var_30) & 3 | (type_5)iVar14) |
                               (var_32 & 3) << 4 | (var_31 & 3) << 2);
            var_12(var_6,buffer);
            var_22 = var_6->number_channels;
            var_33 = var_33 + 4;
            var_20 = var_20 + var_22;
            var_34 = var_6->columns;
          } while ((int)var_33 < (int)(var_34 - 3));
        }
        if ((var_34 & 3) != 0) {
          if ((int)var_33 < (int)var_34) {
            var_35 = 0;
            do {
              while (var_27 = (int)var_33 % 4, var_27 == 1) {
                pPVar8 = var_6->channel_map;
                var_22 = var_6->number_channels;
                var_31 = (type_7)(type_10)
                                   var_21(((*(float *)(var_5 + 0xe8285) *
                                           (float)var_20[var_22 + pPVar8[2].offset] +
                                          *(float *)(var_5 + 0xe827d) *
                                          (float)var_20[var_22 + pPVar8[1].offset] +
                                          (float)var_20[var_22 + pPVar8->offset] *
                                          *(float *)(var_5 + 0xe8281)) *
                                         *(float *)(var_5 + 0xdf3f1)) /
                                         *(float *)(var_5 + 0xd4fc1));
                var_35 = var_35 | (type_5)(var_31 << 4) & 0x30;
LAB_0020ae35:
                var_33 = var_33 + 1;
                if (var_33 == var_34) goto LAB_0020aee2;
              }
              if (1 < var_27) {
                if (var_27 == 2) {
                  pPVar8 = var_6->channel_map;
                  var_22 = var_6->number_channels;
                  var_31 = (type_7)(type_10)
                                     var_21(((*(float *)(var_5 + 0xe8285) *
                                             (float)var_20[var_22 + pPVar8[2].offset] +
                                            *(float *)(var_5 + 0xe827d) *
                                            (float)var_20[var_22 + pPVar8[1].offset] +
                                            (float)var_20[var_22 + pPVar8->offset] *
                                            *(float *)(var_5 + 0xe8281)) *
                                           *(float *)(var_5 + 0xdf3f1)) /
                                           *(float *)(var_5 + 0xd4fc1));
                  var_35 = var_35 | (type_5)(var_31 << 2) & 0xc;
                }
                else if (var_27 == 3) {
                  pPVar8 = var_6->channel_map;
                  var_35 = var_35 | (type_5)(type_10)
                                        var_21(((*(float *)(var_5 + 0xe8285) *
                                                (float)var_20[pPVar8[2].offset] +
                                               *(float *)(var_5 + 0xe827d) *
                                               (float)var_20[pPVar8[1].offset] +
                                               (float)var_20[pPVar8->offset] *
                                               *(float *)(var_5 + 0xe8281)) *
                                              *(float *)(var_5 + 0xdf3f1)) /
                                              *(float *)(var_5 + 0xd4fc1)) & 3;
                }
                goto LAB_0020ae35;
              }
              if (var_27 != 0) goto LAB_0020ae35;
              pPVar8 = var_6->channel_map;
              var_33 = var_33 + 1;
              var_31 = (type_7)(type_10)
                                 var_21(((*(float *)(var_5 + 0xe8285) *
                                         (float)var_20[pPVar8[2].offset] +
                                        *(float *)(var_5 + 0xe827d) *
                                        (float)var_20[pPVar8[1].offset] +
                                        (float)var_20[pPVar8->offset] *
                                        *(float *)(var_5 + 0xe8281)) *
                                       *(float *)(var_5 + 0xdf3f1)) /
                                       *(float *)(var_5 + 0xd4fc1));
              var_35 = var_35 | (type_5)(var_31 << 6);
            } while (var_33 != var_34);
LAB_0020aee2:
            var_34 = ~(type_7)var_35;
          }
          else {
            var_34 = 0xffffffff;
          }
          var_16(buffer,0x1000,(char *)(var_5 + 0xff179),var_34);
          var_12(var_6,buffer);
        }
        var_11 = var_36(var_6,(char *)(var_5 + 0x10209f),
                                  var_37(var_40,var_39),(type_9)var_6->rows);
        if (var_11 == var_7) break;
        var_38 = var_38 + 1;
        bVar17 = 0xfffffffe < var_39;
        var_39 = var_39 + 1;
        var_40 = var_40 + (type_7)bVar17;
      } while (var_38 < (int)var_6->rows);
    }
    var_12(var_6,(char *)(var_5 + 0x1030b3));
    var_12(var_6,(char *)(var_5 + 0x1030bc));
    var_41(var_6);
    var_11 = MagickTrue;
  }
  if (var_42 != *(int *)(var_2 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_43();
  }
  return var_11;
}


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

int MASKED(int param_1,int param_2,int param_3)

{
  int iVar1;
  byte bVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  float fVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  undefined1 *puVar11;
  int iVar12;
  int iVar13;
  uint uVar14;
  int unaff_EDI;
  int in_GS_OFFSET;
  bool bVar15;
  undefined1 *puVar16;
  int local_2074;
  uint local_206c;
  uint local_2064;
  int local_2050;
  uint local_204c;
  int local_2048;
  uint local_2044;
  undefined1 local_2020 [4096];
  undefined1 local_1020 [4096];
  int local_20;
  
  FUN_0004f293();
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd4439),&UNK_00102ffb + unaff_EDI,0xbc,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd4461),&UNK_00102ffb + unaff_EDI,0xbd,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xed40d),&UNK_00102ffb + unaff_EDI,0xbe,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_2 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xdfbd1),&UNK_00102ffb + unaff_EDI,0xbf,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_2 + 0x3328) != 0) {
    LogMagickEvent(0x8000,&UNK_00102ffb + unaff_EDI,unaff_EDI + 0x1030f1,0xc1,
                   &UNK_000eccc7 + unaff_EDI,param_2 + 0x318);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd52fd),&UNK_00102ffb + unaff_EDI,0xc2,
                  (char *)(unaff_EDI + 0x103101));
  }
  if (*(int *)(param_3 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail((char *)(unaff_EDI + 0xd60ed),&UNK_00102ffb + unaff_EDI,0xc3,
                  (char *)(unaff_EDI + 0x103101));
  }
  iVar10 = OpenBlob();
  if (iVar10 != 0) {
    WriteBlobString();
    puVar11 = (undefined1 *)GetImageProperty();
    if (puVar11 == (undefined1 *)0x0) {
      puVar11 = local_1020;
      GetPathComponent();
    }
    iVar10 = unaff_EDI + 0x10301d;
    FormatLocaleString();
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103030,(double)*(int *)(param_2 + 0x208),
                       puVar16,iVar10,puVar11);
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x10304e,(double)*(int *)(param_2 + 0x20c),
                       puVar16);
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,&UNK_0010306c + unaff_EDI,
                       (double)(*(int *)(param_2 + 0x18) + 1U & 0xfffffffe),puVar16);
    puVar16 = local_2020;
    WriteBlobString();
    FormatLocaleString(local_2020,0x1000,unaff_EDI + 0x103082,(double)*(uint *)(param_2 + 0x1c),
                       puVar16);
    WriteBlobString();
    FormatLocaleString();
    WriteBlobString();
    WriteBlobString();
    iVar10 = param_3;
    TransformImageColorspace();
    if (0 < *(int *)(param_2 + 0x1c)) {
      local_204c = 0;
      local_2048 = 0;
      local_2050 = 0;
      do {
        local_2074 = GetVirtualPixels(param_2,0,local_2050,*(undefined4 *)(param_2 + 0x18),1,param_3
                                      ,iVar10);
        if (local_2074 == 0) break;
        uVar14 = *(uint *)(param_2 + 0x18);
        if ((int)uVar14 < 4) {
          local_206c = 0;
        }
        else {
          iVar13 = *(int *)(param_2 + 0x298);
          local_206c = 0;
          do {
            fVar3 = *(float *)(unaff_EDI + 0xe8281);
            iVar10 = local_2074 + iVar13 * 0x18;
            iVar8 = *(int *)(param_2 + 0x2a8);
            iVar1 = iVar10 + iVar13 * -8;
            iVar12 = iVar13 * -8 + iVar1;
            iVar13 = *(int *)(iVar8 + 8);
            iVar9 = *(int *)(iVar8 + 0x14);
            iVar8 = *(int *)(iVar8 + 0x20);
            fVar4 = *(float *)(unaff_EDI + 0xe827d);
            fVar5 = *(float *)(unaff_EDI + 0xe8285);
            fVar6 = *(float *)(unaff_EDI + 0xdf3f1);
            fVar7 = *(float *)(unaff_EDI + 0xd4fc1);
            local_2044 = (uint)(longlong)
                               ROUND((((float)*(double *)(iVar10 + iVar8 * 8) * fVar5 +
                                      (float)*(double *)(iVar10 + iVar9 * 8) * fVar4 +
                                      (float)*(double *)(iVar10 + iVar13 * 8) * fVar3) * fVar6) /
                                     fVar7);
            iVar10 = local_2044 << 6;
            local_2064 = (uint)(longlong)
                               ROUND((((float)*(double *)(iVar1 + iVar8 * 8) * fVar5 +
                                      (float)*(double *)(iVar1 + iVar9 * 8) * fVar4 +
                                      (float)*(double *)(iVar1 + iVar13 * 8) * fVar3) * fVar6) /
                                     fVar7);
            local_2044 = (uint)(longlong)
                               ROUND(((fVar5 * (float)*(double *)(iVar12 + iVar8 * 8) +
                                      fVar4 * (float)*(double *)(iVar12 + iVar9 * 8) +
                                      fVar3 * (float)*(double *)(iVar12 + iVar13 * 8)) * fVar6) /
                                     fVar7);
            puVar11 = (undefined1 *)
                      ((uint)(byte)((byte)(longlong)
                                          ROUND((((float)*(double *)(local_2074 + iVar8 * 8) * fVar5
                                                 + (float)*(double *)(local_2074 + iVar9 * 8) *
                                                   fVar4 + fVar3 * (float)*(double *)
                                                                           (local_2074 + iVar13 * 8)
                                                 ) * fVar6) / fVar7) & 3 | (byte)iVar10) |
                       (local_2064 & 3) << 4 | (local_2044 & 3) << 2);
            iVar10 = unaff_EDI + 0xff179;
            FormatLocaleString();
            WriteBlobString();
            iVar13 = *(int *)(param_2 + 0x298);
            local_206c = local_206c + 4;
            local_2074 = local_2074 + iVar13 * 8;
            uVar14 = *(uint *)(param_2 + 0x18);
          } while ((int)local_206c < (int)(uVar14 - 3));
        }
        if ((uVar14 & 3) != 0) {
          if ((int)local_206c < (int)uVar14) {
            bVar2 = 0;
            do {
              while (iVar10 = (int)local_206c % 4, iVar10 == 1) {
                iVar13 = *(int *)(param_2 + 0x2a8);
                iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;
                local_2044 = (uint)(longlong)
                                   ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                           (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x20) * 8)
                                          + *(float *)(unaff_EDI + 0xe827d) *
                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)
                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)
                                              * *(float *)(unaff_EDI + 0xe8281)) *
                                         *(float *)(unaff_EDI + 0xdf3f1)) /
                                         *(float *)(unaff_EDI + 0xd4fc1));
                bVar2 = bVar2 | (byte)(local_2044 << 4) & 0x30;
LAB_0020ae35:
                local_206c = local_206c + 1;
                if (local_206c == uVar14) goto LAB_0020aee2;
              }
              if (1 < iVar10) {
                if (iVar10 == 2) {
                  iVar13 = *(int *)(param_2 + 0x2a8);
                  iVar10 = local_2074 + *(int *)(param_2 + 0x298) * 8;
                  local_2044 = (uint)(longlong)
                                     ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                             (float)*(double *)
                                                     (iVar10 + *(int *)(iVar13 + 0x20) * 8) +
                                            *(float *)(unaff_EDI + 0xe827d) *
                                            (float)*(double *)(iVar10 + *(int *)(iVar13 + 0x14) * 8)
                                            + (float)*(double *)(iVar10 + *(int *)(iVar13 + 8) * 8)
                                              * *(float *)(unaff_EDI + 0xe8281)) *
                                           *(float *)(unaff_EDI + 0xdf3f1)) /
                                           *(float *)(unaff_EDI + 0xd4fc1));
                  bVar2 = bVar2 | (byte)(local_2044 << 2) & 0xc;
                }
                else if (iVar10 == 3) {
                  iVar10 = *(int *)(param_2 + 0x2a8);
                  bVar2 = bVar2 | (byte)(longlong)
                                        ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                                (float)*(double *)
                                                        (local_2074 + *(int *)(iVar10 + 0x20) * 8) +
                                               *(float *)(unaff_EDI + 0xe827d) *
                                               (float)*(double *)
                                                       (local_2074 + *(int *)(iVar10 + 0x14) * 8) +
                                               (float)*(double *)
                                                       (local_2074 + *(int *)(iVar10 + 8) * 8) *
                                               *(float *)(unaff_EDI + 0xe8281)) *
                                              *(float *)(unaff_EDI + 0xdf3f1)) /
                                              *(float *)(unaff_EDI + 0xd4fc1)) & 3;
                }
                goto LAB_0020ae35;
              }
              if (iVar10 != 0) goto LAB_0020ae35;
              iVar10 = *(int *)(param_2 + 0x2a8);
              local_206c = local_206c + 1;
              local_2044 = (uint)(longlong)
                                 ROUND(((*(float *)(unaff_EDI + 0xe8285) *
                                         (float)*(double *)
                                                 (local_2074 + *(int *)(iVar10 + 0x20) * 8) +
                                        *(float *)(unaff_EDI + 0xe827d) *
                                        (float)*(double *)(local_2074 + *(int *)(iVar10 + 0x14) * 8)
                                        + (float)*(double *)(local_2074 + *(int *)(iVar10 + 8) * 8)
                                          * *(float *)(unaff_EDI + 0xe8281)) *
                                       *(float *)(unaff_EDI + 0xdf3f1)) /
                                       *(float *)(unaff_EDI + 0xd4fc1));
              bVar2 = bVar2 | (byte)(local_2044 << 6);
            } while (local_206c != uVar14);
LAB_0020aee2:
            puVar11 = (undefined1 *)~(uint)bVar2;
          }
          else {
            puVar11 = (undefined1 *)0xffffffff;
          }
          iVar10 = unaff_EDI + 0xff179;
          FormatLocaleString();
          WriteBlobString();
        }
        iVar13 = SetImageProgress(param_2,unaff_EDI + 0x10209f,local_204c,local_2048,
                                  *(undefined4 *)(param_2 + 0x1c),0,iVar10,puVar11);
        if (iVar13 == 0) break;
        local_2050 = local_2050 + 1;
        bVar15 = 0xfffffffe < local_204c;
        local_204c = local_204c + 1;
        local_2048 = local_2048 + (uint)bVar15;
      } while (local_2050 < *(int *)(param_2 + 0x1c));
    }
    WriteBlobString();
    WriteBlobString();
    CloseBlob();
    iVar10 = 1;
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_002decd0();
  }
  return iVar10;
}

